home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 12 / Cream of the Crop 12 (Part II) / Cream of the Crop 12 (Part II).iso / BBS / PB201SW.ZIP / CTL.LZH / C1
Encoding:
Text File  |  1996-04-14  |  244.0 KB  |  10,585 lines

  1. UEDITCTLloadmem(control\ued1.ctl)
  2. UEDCTLB,NotIf(%nv%editor%)=() then 
  3.  SetEqual(o=%NV%EDITOR%)
  4.  Goto(MSGREADSEARCH)
  5. endif
  6. *CL
  7. SetEqual(/nveditor=)
  8. ;IF (&S)=(1) THEN JUMP (SCR1)
  9. ;IF (&S)=(2) THEN JUMP (SCR2)
  10. ;IF (&S)=(3) THEN JUMP (SCR3)
  11.  
  12. *Clear2
  13. AnsiGoto(34,18);
  14. Say(&0&Next User*)
  15. AnsiGoto(32,19);
  16. Say(Previous User*)
  17. AnsiGoto(33,20);
  18. Say(Edit User*)
  19. AnsiGoto(31,21);
  20. Say(Search For User*)
  21. AnsiGoto(29,22);
  22. Say(Quit to Sysop Menu*)
  23. AnsiGoto(3,19);
  24. Say([UP] = Move Up*)
  25. AnsiGoto(3,20);
  26. Say([DN] = Move Down*)
  27. AnsiGoto(53,18);
  28. Say([RT] = Next Screen*)
  29. AnsiGoto(53,19)
  30. Say([LT] = Previous Screen*)
  31. AnsiGoto(53,21)
  32. Say(F = First User*)
  33. AnsiGoto(53,22)
  34. Say(L = Last User*)
  35. AnsiGoto(3,21)
  36. Say((ENTER) Selects*)
  37.  
  38.  
  39. If(%VAR%S)=(4) then Goto(Search)
  40.  
  41. *GI
  42. AnsiGoto(23,20);
  43. MenuAsk(&15&Enter Item # to Edit (0=Quit): &14&*)
  44. Number(%RESP%)
  45. ;IfNotTrue(Goto(Clear2))
  46. IfNotTrue(Return)
  47. If(%RESP%)=(0) then Return
  48. Goto(CI)
  49.  
  50. ;SAY([Q]uit, [S]earch, [N]ext, [P]rev, [#] User #, [A]dd, [+] Next Page&CR&)
  51. ;MENUASK(%NOCR% (User %VAR%Y/%VAR%G)? *)
  52.  
  53. ;BIGIF(Q:QUIT,S:SEARCH,N:NEXT,P:PREV,#:NU,A:ADD,+:NP)
  54. ;NUMBER(%RESP%)
  55. ;IFTRUE(GOTO (CI))
  56. ;IF (&Z)=(0) THEN GOTO (CL)
  57. ;ANSIGOTO(1,21)
  58. ;GOTO (GI)
  59.  
  60. *NP
  61. INC(S)
  62. IF (&S)=(4) THEN SETEQUAL(S=1)
  63. GOTO (CL)
  64.  
  65. *CI
  66. SETEQUAL(C=1)
  67. AnsiGoto(23,20);
  68. Say(&0&Enter Item # to Edit (0=Quit): %RESP%)
  69. If(&L)=(1) then CmpVal(%RESP%,31)
  70. If(&L)=(2) then CmpVal(%RESP%,29)
  71. If(&L)=(3) then CmpVal(%RESP%,52)
  72. If(&L)=(4) then CmpVal(%RESP%,51)
  73. IfNotTrue(Goto(InvSel))
  74. AnsiGoto(23,20)
  75. SETEQUAL(Q=%RESP%)
  76. ASK(&15&New Value? &14&*)
  77. ;CMPVALO(38,%VAR%Q)
  78. ;IFTRUE(GOTO (NP1))
  79. ;Goto(Page%VAR%L)
  80. If(&L)=(1) then Goto(Page1)
  81. If(&L)=(2) then Goto(Page2)
  82. If(&L)=(3) then Goto(Page3)
  83. If(&L)=(4) then Goto(Page4)
  84. *Page1
  85. CmpVal(%VAR%Q,31)
  86. IfNotTrue(Goto(CI))
  87. IF (%var%q)=(1) THEN SetEqual(\NAME=%RESP%)
  88. IF (%var%q)=(2) THEN SetEqual(\ALIAS=%RESP%)
  89. IF (%var%q)=(3) THEN SetEqual(\COMPANY=%RESP%)
  90. IF (%var%q)=(4) THEN SetEqual(\TITLE=%RESP%)
  91. IF (%var%q)=(5) THEN SetEqual(\MHSNAME=%RESP%)
  92. IF (%var%q)=(6) THEN SetEqual(\STREET1=%RESP%)
  93. IF (%var%q)=(7) THEN SetEqual(\STREET=%RESP%)
  94. IF (%var%q)=(8) THEN SetEqual(\FROM=%RESP%)
  95. IF (%var%q)=(9) THEN SetEqual(\ZIP=%RESP%)
  96. IF (%var%q)=(10) THEN SetEqual(\COUNTRY=%RESP%)
  97. IF (%var%q)=(11) THEN SetEqual(\PHONE=%RESP%)
  98. IF (%var%q)=(12) THEN SetEqual(\WORK=%RESP%)
  99. IF (%var%q)=(13) THEN SetEqual(\BIRTH=%RESP%)
  100. IF (%var%q)=(14) THEN SetEqual(\PASS=%RESP%)
  101. IF (%var%q)=(15) THEN SetEqual(\LASTT=%RESP%)
  102.  
  103. IF (%var%q)=(16) THEN SetEqual(\UPLOADS=%RESP%)
  104. IF (%var%q)=(17) THEN SetEqual(\DOWNLOADS=%RESP%)
  105. IF (%var%q)=(18) THEN SetEqual(\LASTDOWN=%RESP%)
  106. IF (%var%q)=(19) THEN SetEqual(\LASTUP=%RESP%)
  107. IF (%var%q)=(20) THEN SetEqual(\LASTMSG=%RESP%)
  108. IF (%var%q)=(21) THEN SetEqual(\SEC=%RESP%)
  109. IF (%var%q)=(22) THEN SetEqual(\KDOWN=%RESP%)
  110. IF (%var%q)=(23) THEN SetEqual(\KUP=%RESP%)
  111. IF (%var%q)=(24) THEN SetEqual(\GRAPHICS=%RESP%)
  112. IF (%var%q)=(25) THEN SetEqual(\SCREENLEN=%RESP%)
  113. IF (%var%q)=(26) THEN SetEqual(\BYTESTODAY=%RESP%)
  114. IF (%var%q)=(27) THEN SetEqual(\MINSU=%RESP%)
  115. IF (%var%q)=(28) THEN SetEqual(\DROPPED=%RESP%)
  116. IF (%var%q)=(29) THEN SetEqual(\CHATREQ=%RESP%)
  117. IF (%var%q)=(30) THEN SetEqual(\CUTOFF=%RESP%)
  118. Jump(CKSave)
  119. Return
  120. *Page2
  121. CmpVal(%VAR%Q,29)
  122. IfNotTrue(Goto(CI))
  123. IF (%var%q)=(1) THEN SetEqual(\LAST=%RESP%)
  124. IF (%var%q)=(2) THEN SetEqual(\LEFT=%RESP%)
  125. IF (%var%q)=(3) THEN SetEqual(\TIMESON=%RESP%)
  126. IF (%var%q)=(4) THEN SetEqual(\FIRST=%RESP%)
  127.  
  128. IF (%var%q)=(5) THEN SetEqual(\MEMO=%RESP%)
  129. IF (%var%q)=(6) THEN SetEqual(\MEMO2=%RESP%)
  130. IF (%var%q)=(7) THEN SetEqual(\MEMO3=%RESP%)
  131. IF (%var%q)=(8) THEN SetEqual(\MEMO4=%RESP%)
  132. IF (%var%q)=(9) THEN SetEqual(\MEMO5=%RESP%)
  133. IF (%var%q)=(10) THEN SetEqual(\MEMO6=%RESP%)
  134. IF (%var%q)=(11) THEN SetEqual(\INT1=%RESP%)
  135. IF (%var%q)=(12) THEN SetEqual(\INT2=%RESP%)
  136. IF (%var%q)=(13) THEN SetEqual(\INT3=%RESP%)
  137. IF (%var%q)=(14) THEN SetEqual(\INT4=%RESP%)
  138. IF (%var%q)=(15) THEN SetEqual(\INT5=%RESP%)
  139.  
  140.  
  141.  
  142. IF (%var%q)=(16) THEN SetEqual(\PROTOCOL=%RESP%)
  143. IF (%var%q)=(17) THEN SetEqual(\NEWCHECK=%RESP%)
  144. IF (%var%q)=(18) THEN SetEqual(\DOORS=%RESP%)
  145.  
  146. IF (%var%q)=(19) THEN SetEqual(\SUBBAL=%RESP%)
  147. IF (%var%q)=(20) THEN SetEqual(\SUB=%RESP%)
  148. IF (%var%q)=(21) THEN SetEqual(\TL=%RESP%)
  149. IF (%var%q)=(22) THEN SetEqual(\FRATIO=%RESP%)
  150. IF (%var%q)=(23) THEN SetEqual(\DAILYDL=%RESP%)
  151. IF (%var%q)=(24) THEN SetEqual(\DAILYUL=%RESP%)
  152. IF (%var%q)=(25) THEN SetEqual(\NBAL=%RESP%)
  153. IF (%var%q)=(26) THEN SetEqual(\COMP=%RESP%)
  154. IF (%var%q)=(27) THEN SetEqual(\WAIT=%RESP%)
  155. If (%var%q)=(28) THEN SetEqual(\LO=%RESP%)
  156. Jump(CKSave)
  157. Return
  158.  
  159. *Page3
  160. CmpVal(%VAR%Q,52)
  161. IfNotTrue(Goto(CI))
  162. IF (%var%q)=(1) THEN SetEqual(\INT6=%RESP%)
  163. IF (%var%q)=(2) THEN SetEqual(\CHR1=%RESP%)
  164. IF (%var%q)=(3) THEN SetEqual(\CHR2=%RESP%)
  165. IF (%var%q)=(4) THEN SetEqual(\CHR3=%RESP%)
  166.  
  167.  
  168. IF (%var%q)=(5) THEN SetEqual(\MSENT=%RESP%)
  169. IF (%var%q)=(6) THEN SetEqual(\SUBDATE=%RESP%)
  170. IF (%var%q)=(7) THEN SetEqual(\EXPTO=%RESP%)
  171. IF (%var%q)=(8) THEN SetEqual(\EXPSEC=%RESP%)
  172. IF (%var%q)=(9) THEN SetEqual(\EXPERT=%RESP%)
  173. IF (%var%q)=(10) THEN
  174.    SetEqual(\DEFAVAIL=%RESP%)
  175.    McAvail(%RESP%)
  176.   Endif
  177. IF (%var%q)=(11) THEN SetEqual(\PSYS=%RESP%)
  178. IF (%var%q)=(12) THEN SetEqual(\ITIME=%RESP%)
  179. IF (%var%q)=(13) THEN SetEqual(\ANSMUSIC=%RESP%)
  180. IF (%var%q)=(14) THEN SetEqual(\FLAG01=%RESP%)
  181. IF (%var%q)=(15) THEN SetEqual(\FLAG02=%RESP%)
  182. IF (%var%q)=(16) THEN SetEqual(\FLAG03=%RESP%)
  183. IF (%var%q)=(17) THEN SetEqual(\FLAG04=%RESP%)
  184. IF (%var%q)=(18) THEN SetEqual(\FLAG05=%RESP%)
  185. IF (%var%q)=(19) THEN SetEqual(\FLAG06=%RESP%)
  186. IF (%var%q)=(20) THEN SetEqual(\FLAG07=%RESP%)
  187. IF (%var%q)=(21) THEN SetEqual(\FLAG08=%RESP%)
  188. IF (%var%q)=(22) THEN SetEqual(\FLAG09=%RESP%)
  189. IF (%var%q)=(23) THEN SetEqual(\FLAG10=%RESP%)
  190. IF (%var%q)=(24) THEN SetEqual(\FLAG11=%RESP%)
  191. IF (%var%q)=(25) THEN SetEqual(\FLAG12=%RESP%)
  192. IF (%var%q)=(26) THEN SetEqual(\FLAG13=%RESP%)
  193. IF (%var%q)=(27) THEN SetEqual(\FLAG14=%RESP%)
  194. IF (%var%q)=(28) THEN SetEqual(\FLAG15=%RESP%)
  195. IF (%var%q)=(29) THEN SetEqual(\FLAG16=%RESP%)
  196. IF (%var%q)=(30) THEN SetEqual(\FLAG17=%RESP%)
  197. IF (%var%q)=(31) THEN SetEqual(\FLAG18=%RESP%)
  198. IF (%var%q)=(32) THEN SetEqual(\FLAG19=%RESP%)
  199. IF (%var%q)=(33) THEN SetEqual(\FLAG20=%RESP%)
  200. IF (%var%q)=(34) THEN SetEqual(\FLAG21=%RESP%)
  201. IF (%var%q)=(35) THEN SetEqual(\FLAG22=%RESP%)
  202. IF (%var%q)=(36) THEN SetEqual(\FLAG23=%RESP%)
  203. IF (%var%q)=(37) THEN SetEqual(\FLAG24=%RESP%)
  204. IF (%var%q)=(38) THEN SetEqual(\FLAG25=%RESP%)
  205. IF (%var%q)=(39) THEN SetEqual(\FLAG26=%RESP%)
  206. IF (%var%q)=(40) THEN SetEqual(\FLAG27=%RESP%)
  207. IF (%var%q)=(41) THEN SetEqual(\FLAG28=%RESP%)
  208. IF (%var%q)=(42) THEN SetEqual(\FLAG29=%RESP%)
  209. IF (%var%q)=(43) THEN SetEqual(\FLAG30=%RESP%)
  210. IF (%var%q)=(44) THEN SetEqual(\FLAG31=%RESP%)
  211. IF (%var%q)=(45) THEN SetEqual(\FLAG32=%RESP%)
  212. IF (%var%q)=(46) THEN SetEqual(\FLAG33=%RESP%)
  213. IF (%var%q)=(47) THEN SetEqual(\FLAG34=%RESP%)
  214. IF (%var%q)=(48) THEN SetEqual(\FLAG35=%RESP%)
  215. IF (%var%q)=(49) THEN SetEqual(\FLAG36=%RESP%)
  216. IF (%var%q)=(50) THEN SetEqual(\FLAG37=%RESP%)
  217. IF (%var%q)=(51) THEN SetEqual(\FLAG38=%RESP%)
  218. Jump(CKSave)
  219. Return
  220.  
  221. *Page4
  222. CmpVal(%VAR%Q,51)
  223. IfNotTrue(Goto(CI))
  224. IF (%var%q)=(1) THEN SetEqual(\FLAG39=%RESP%)
  225. IF (%var%q)=(2) THEN SetEqual(\FLAG40=%RESP%)
  226. IF (%var%q)=(3) THEN SetEqual(\FLAG41=%RESP%)
  227. IF (%var%q)=(4) THEN SetEqual(\FLAG42=%RESP%)
  228. IF (%var%q)=(5) THEN SetEqual(\FLAG43=%RESP%)
  229. IF (%var%q)=(6) THEN SetEqual(\FLAG44=%RESP%)
  230. IF (%var%q)=(7) THEN SetEqual(\FLAG45=%RESP%)
  231. IF (%var%q)=(8) THEN SetEqual(\FLAG46=%RESP%)
  232. IF (%var%q)=(9) THEN SetEqual(\FLAG47=%RESP%)
  233. IF (%var%q)=(10) THEN SetEqual(\FLAG48=%RESP%)
  234. IF (%var%q)=(11) THEN SetEqual(\FLAG49=%RESP%)
  235. IF (%var%q)=(12) THEN SetEqual(\FLAG50=%RESP%)
  236. IF (%var%q)=(13) THEN SetEqual(\FLAG51=%RESP%)
  237.  
  238. IF (%var%q)=(14) THEN SetEqual(\FLAG52=%RESP%)
  239. IF (%var%q)=(15) THEN SetEqual(\FLAG53=%RESP%)
  240. IF (%var%q)=(16) THEN SetEqual(\FLAG54=%RESP%)
  241. IF (%var%q)=(17) THEN SetEqual(\FLAG55=%RESP%)
  242. IF (%var%q)=(18) THEN SetEqual(\FLAG56=%RESP%)
  243. IF (%var%q)=(19) THEN SetEqual(\FLAG57=%RESP%)
  244. IF (%var%q)=(20) THEN SetEqual(\FLAG58=%RESP%)
  245. IF (%var%q)=(21) THEN SetEqual(\FLAG59=%RESP%)
  246. IF (%var%q)=(22) THEN SetEqual(\FLAG60=%RESP%)
  247. IF (%var%q)=(23) THEN SetEqual(\FLAG61=%RESP%)
  248. IF (%var%q)=(24) THEN SetEqual(\FLAG62=%RESP%)
  249. IF (%var%q)=(25) THEN SetEqual(\FLAG63=%RESP%)
  250. IF (%var%q)=(26) THEN SetEqual(\FLAG64=%RESP%)
  251. IF (%var%q)=(27) THEN SetEqual(\FLAG65=%RESP%)
  252. IF (%var%q)=(28) THEN SetEqual(\FLAG66=%RESP%)
  253. IF (%var%q)=(29) THEN SetEqual(\FLAG67=%RESP%)
  254. IF (%var%q)=(30) THEN SetEqual(\FLAG68=%RESP%)
  255. IF (%var%q)=(31) THEN SetEqual(\FLAG69=%RESP%)
  256. IF (%var%q)=(32) THEN SetEqual(\FLAG70=%RESP%)
  257. IF (%var%q)=(33) THEN SetEqual(\FLAG71=%RESP%)
  258. IF (%var%q)=(34) THEN SetEqual(\FLAG72=%RESP%)
  259. IF (%var%q)=(35) THEN SetEqual(\FLAG73=%RESP%)
  260. IF (%var%q)=(36) THEN SetEqual(\FLAG74=%RESP%)
  261. IF (%var%q)=(37) THEN SetEqual(\FLAG75=%RESP%)
  262. IF (%var%q)=(38) THEN SetEqual(\FLAG76=%RESP%)
  263. IF (%var%q)=(39) THEN SetEqual(\FLAG77=%RESP%)
  264. IF (%var%q)=(40) THEN SetEqual(\FLAG78=%RESP%)
  265. IF (%var%q)=(41) THEN SetEqual(\FLAG79=%RESP%)
  266. IF (%var%q)=(42) THEN SetEqual(\FLAG80=%RESP%)
  267. IF (%var%q)=(43) THEN SetEqual(\FLAG81=%RESP%)
  268. IF (%var%q)=(44) THEN SetEqual(\FLAG82=%RESP%)
  269. IF (%var%q)=(45) THEN SetEqual(\FLAG83=%RESP%)
  270. IF (%var%q)=(46) THEN SetEqual(\FLAG84=%RESP%)
  271. IF (%var%q)=(47) THEN SetEqual(\FLAG85=%RESP%)
  272. IF (%var%q)=(48) THEN SetEqual(\FLAG86=%RESP%)
  273. IF (%var%q)=(49) THEN SetEqual(\FLAG87=%RESP%)
  274. Jump(CKSave)
  275. Return
  276.  
  277. *ADD
  278. SETEQUAL(C=1)
  279. INC(G)
  280. SETEQUAL(Y=%VAR%G)
  281. GOTO (DOUSER)
  282.  
  283. *NU
  284. JUMP (CKSAVE)
  285. ASK(User Number?*)
  286. SETEQUAL(Y=%RESP%)
  287. GOTO (DOUSER)
  288.  
  289. *NEXT
  290. JUMP (CKSAVE)
  291. INC(Y)
  292. GOTO (DOUSER)
  293.  
  294. *PREV
  295. JUMP (CKSAVE)
  296. ADDVAR(%VAR%Y+-1=Y)
  297. GOTO (DOUSER)
  298.  
  299. *SEARCH
  300. JUMP (CKSAVE)
  301. AnsiGoto(30,20)
  302. Say(&0&Save Changes? Yes*)
  303. AnsiGoto(20,20)
  304. MENUASK(&15&Search Text? &14&*)
  305. SetEqual(o=%RESP%)
  306. addvar(%var%y+1=i)
  307. seekuserp(%var%o,%var%i)
  308. SetEqual(o=)
  309. if (%aresp%)=(No) then goto(ex)
  310. Goto(MoreOfSearch)
  311.  
  312. *MSGREADSEARCH
  313. SeekUser(%VAR%O)
  314. SetEqual(o=)
  315. SetNv(editor=)
  316. NotIf(%ARESP%)=(Yes) then Goto(NoRec)
  317. *MOREOFSEARCH
  318. setequal(y=%ndnumb%)
  319.  
  320. *EX
  321. RETURN
  322. ;GOTO (DOUSER)
  323.  
  324. *QUIT
  325. JUMP (CKSAVE)
  326. RETURN
  327.  
  328. *CKSAVE
  329. AnsiGoto(34,18);
  330. Say(&0&Next User*)
  331. AnsiGoto(32,19);
  332. Say(Previous User*)
  333. AnsiGoto(23,20);
  334. ;AnsiGoto(33,20);
  335. ;Say(Edit User*)
  336. Say(                                              *)
  337. AnsiGoto(31,21);
  338. Say(Search For User*)
  339. AnsiGoto(29,22);
  340. Say(Quit to Sysop Menu*)
  341. AnsiGoto(3,19);
  342. Say([UP] = Move Up*)
  343. AnsiGoto(3,20);
  344. Say([DN] = Move Down*)
  345. AnsiGoto(53,18);
  346. Say([RT] = Next Screen*)
  347. AnsiGoto(53,19)
  348. Say([LT] = Previous Screen*)
  349. AnsiGoto(53,21)
  350. Say(F = First User*)
  351. AnsiGoto(53,22)
  352. Say(L = Last User*)
  353. AnsiGoto(3,21)
  354. Say((ENTER) Selects*)
  355.  NOTIF (&C)=(1) THEN RET
  356. AnsiGoto(30,20)
  357. yesnoask(&15&Save Changes? &14&*)
  358. if (%RESP%)=(Yes) THEN 
  359.  SAVEUSER(%VAR%Y)
  360.  SetEqual(c=0)
  361.  endif
  362.  
  363. RET
  364.  
  365. *InvSel
  366. ; AnsiGoto(23,20);
  367. ; Say(&0&Enter Item # to Edit (0=Quit): %RESP%)
  368.  AnsiGoto(29,20)
  369.  Say(&12&Invalid Selection!*)
  370.  SecPause(2)
  371.  AnsiGoto(29,20)
  372.  Say(&0&Invalid Selection!*)
  373.  Goto(GI)
  374.  
  375. *NoRec
  376.  Say(&CR&&12&Could not locate user record!&CR&)
  377.  SetEqual(/nveditor=)
  378.  SetEqual(o=)
  379.  SecPause(1)
  380.  Return
  381. ENTERATTCTL¥SetEqual(/nvattlimit=200)
  382. ;limits PB to 200 attaches of same filename.
  383.  
  384. SetNv(fntemp=)   ; needs to be empty to indicate no path in filename
  385. Say(&14&Calculating free storage space...*)
  386. ;ClearMem
  387. FreeSpace(%CDRIVE%:)
  388. setequal(l=%aresp%)
  389. CmpVal(%ARESP%,%MINSPACE%)
  390. IfTrue (Goto (notenufs))
  391. eline(38)
  392.  
  393.   *pickprot
  394. if (%baud%)=(LOCAL) then goto (pok)
  395. Display (display\upPROTS1)
  396. Say(&14&Press [ENTER] to quit&CR&)
  397. MenuAsk (%CRON%&15&Which transfer protocol would you like to use?&12&: &14&*)
  398. If (%RESP%)=(Q) Then Return
  399. If (%RESP%)=(<CR>) then Return
  400. Len(%RESP%)
  401. NotIf (%ARESP%)=(1) Then Goto (Pprob)
  402. Seek(protocol\%RESP%-AU.BT)
  403. IfTrue (Goto (Pok))
  404.  
  405.   *pprob
  406. loadsub(control\macros\badsel.ctl)
  407. Goto (pickprot)
  408.  
  409.    *Pok
  410. addcomma(%var%l)
  411. Say(&CR&&11&%ARESP% &15&bytes free.)
  412. SetEqual(r=%RESP%)
  413. cMenuAsk (&CR&&15&Please enter the name of the file to attach&12&:&14& *)
  414. If (%RESP%)=() Then Return
  415. SetEqual(x=%RESP%)
  416. find(&x,.)
  417. if (%aresp%)=(0) then setequal(x=%resp%.)
  418. setequal(/resp=%var%x)
  419. If(%LOCAL%)=(TRUE) then Goto(ChkPath)
  420. *WeBeBack
  421. SetEqual(/nvATTFNAME=%RESP%)
  422. Jump(DeleteExtension)
  423. Jump(ChooseExtension)
  424. setequal(d=%resp%)
  425. ;Seek(%ATTPAT%%var%x)
  426. ;IfTrue (Goto (alreadyhere))
  427. *TryAgain
  428. If (%BAUD%)=(LOCAL) Then Goto (locul)
  429. Say(&CR&&11&We're ready to receive the file.  Please start sending now.)
  430. FixFile(protocol\%var%r-au.bt,%pbtemp%%var%r-au.bat)
  431. Exec(%pbtemp%%var%r-au.BAT│)
  432. Goto (success)
  433.  
  434.   *locul
  435. If(%NV%FNTEMP%)<>() then
  436.    SetEqual(/RESP=%NV%FNTEMP%)
  437.    Goto(DoCopy)
  438.   endif
  439. MenuAsk (&15&Please enter the path for this file&12&: &14&*)
  440. *DoCopy
  441. fCopy(%RESP%\%NV%ATTFNAME%,%ATTPAT%%NV%ATTACH%.%NV%ATTEXT%)
  442. SetNv(fntemp=)
  443. notif (%ARESP%)=(0) then goto (pok)
  444.  
  445.   *success
  446. If (%ARESP%)<>(0) Then Goto (aborted)
  447. ;loadsub(zc\zc2.ctl)
  448. if (&y)=(2) then goto (aborted)
  449. Log(--,Attach uploaded: %nv%attfname%. Saved as %nv%attach%.%nv%attext%)
  450. SetEqual(x=)   ; reset attach filename
  451. Display(display\attsucc)
  452. return
  453.  
  454.   *chkpath
  455. SetNv(fntemp=)
  456. *Chkpath1
  457. Find(&x,:)
  458. If(%ARESP%)=(2) then
  459.   Get(&x,1,2)
  460.   SetNv(fntemp=%ARESP%)
  461.   Len(%VAR%X)
  462.   AddVar(%ARESP%+-2=o)
  463.   Get(&x,3,%VAR%O)
  464.   SetEqual(x=%ARESP%)
  465.  endif
  466. *chkpath2
  467. Find(&x,\)  ; see if they put a path in with the filename
  468. SetEqual(o=%ARESP%)
  469. If(%ARESP%)<>(0) then
  470.   Get(&x,1,%VAR%O)
  471.   SetNv(fntemp=%NV%FNTEMP%%ARESP%)
  472.   Len(%VAR%X)
  473.   AddVar(%ARESP%+-o=p)
  474.   Inc(o)
  475.   Get(&x,%VAR%O,%VAR%P)
  476.   SetEqual(x=%ARESP%)
  477.   Goto(ChkPath2)  ; checks for multiple backslashes
  478.  endif
  479.  If(%NV%FNTEMP%)<>() then
  480.    Len(%NV%FNTEMP%)
  481.    SetEqual(o=%ARESP%)
  482.    Get(%NV%FNTEMP%,%ARESP%,1)
  483.    If(%ARESP%)=(\) then
  484.      Dec(o)
  485.      Get(%NV%FNTEMP%,1,%VAR%O)
  486.      SetNv(fntemp=%ARESP%)
  487.     endif
  488.   endif
  489.  SetEqual(/RESP=%VAR%X)
  490.  Goto(WeBeBack)
  491.  
  492.   *notenufs
  493. display(display\nospce)
  494. Return
  495.         
  496.   *aborted
  497. setnv(attach1=%nv%attach%)
  498. setnv(attach=)
  499. setnv(attext1=%nv%attext%)
  500. setnv(attext=)
  501. setnv(attfname1=%nv%attfname%)
  502. setnv(attfname=)
  503. FlushOut
  504. Log(--,Attach upload aborted (%nv%attfname%))
  505. secpause(2)
  506. enter
  507. Display(display\attabt)
  508. Say(&CR&&15&Would you like to try to upload the attach again? (&12&Y&15&/&12&N&15&)&14&*)
  509. Back(4)
  510. YesNoAsk(*)
  511. If(%RESP%)=(No) then
  512.   SetEqual(x=)
  513.   Return
  514.  endif
  515. Kill(%ATTPAT%%NV%ATTACH%.%NV%ATTEXT%)
  516. ;Kill file in case the partial upload was saved
  517. setnv(attach=%nv%attach1%)
  518. setnv(attach1=)
  519. setnv(attext=%nv%attext1%)
  520. setnv(attext1=)
  521. setnv(attfname=%nv%attfname1%)
  522. setnv(attfname1=)
  523. Goto(TryAgain)        
  524.  
  525.   *alreadyhere
  526. Display (display\HERENOW)
  527. Goto (pok)
  528.  
  529.   *DeleteExtension
  530. Find(%NV%ATTFNAME%,.)
  531. If(%ARESP%)=(0) then 
  532.   SetEqual(/nvattach=%NV%FULL%)
  533.   Ret
  534.  endif
  535. AddVar(%ARESP%+-1=x)
  536. Get(%NV%ATTFNAME%,1,%VAR%X)
  537. SetEqual(x=%NV%ATTFNAME%)
  538. SetEqual(/nvattach=%ARESP%)
  539. Ret
  540.  
  541. *ChooseExtension
  542. SetEqual(x=0)
  543. *CheckExt
  544. Seek(%ATTPAT%%NV%ATTACH%.%VAR%X)
  545. IfNotTrue(Goto(SetExt))
  546. Inc(x)
  547. If(&x)>=(%NV%ATTLIMIT%) then Goto(ChooseDiffName)
  548. Goto(CheckExt)
  549.  
  550. *SetExt
  551. SetEqual(/nvattext=%VAR%X)
  552. ;SetEqual(x=%NV%ATTFNAME%)
  553. SetEqual(x=%NV%ATTACH%.%NV%ATTEXT%)
  554. ;set x to the actual stored filename, not the user-given one.
  555. Ret
  556.  
  557. *ChooseDiffName
  558. Say(&CR&&12&That filename is currently unavailable. Please choose another.)
  559. Goto(Pok)
  560. CCTLp#;To Install the Call Back Verifier:
  561. ;
  562. ; 1. Copy c.ctl to your CONTROL\ directory.
  563. ; 2. Edit Open.ctl.  Put the following line in the file after this line:
  564. ;    If (%ARESP%)=(ALREADY ON) then Goto (alreadyon)
  565. ; Insert the following line:
  566. ;     If (/:sec/)=(10) then loadsub(control\c.ctl)
  567.  
  568. setnv(wipE=)
  569. loadsub(control\exitwip.ctl)
  570.  
  571. ; If you would like to block out certain phone numbers, create a file calledi
  572. ;badnumbs.bbs in the main bbs directory.  the format for the file:
  573. ;start#to_compare,number_#'s_to_compare,numbers
  574. ;
  575. ;for example, the following file would block out 911, 976 and 900 calls:
  576. ;
  577. ;1,3,900
  578. ;5,3,976
  579. ;5,3,911
  580.  
  581.   setnv(bbscon=Y)       ;connect user to BBS after callback?
  582.   setnv(prefix=ATDP)    ;dial prefix
  583.   setnv(passtries=4)    ;number of retries allowed for password entry
  584.   setnv(newtime=30)     ;# of minutes to set time left to after callback
  585.   setnv(upgsec=20)      ;security level to upgrade to
  586.   setnv(LongDist=Y)     ;allow long distance callers?
  587.   setnv(init=ATE1V1M1)  ;modem initialize string
  588.   setnv(CallTimes=2)    ;# times to try calling
  589.   setnv(dtrtime=5)      ;# seconds to leave DTR low for disconnect
  590.   setnv(DialWait=45)    ;# seconds to wait between redials
  591.   setnv(DialTries=3)    ;# times to redial on no pickup
  592.   setnv(CT=60)          ;# times to wait for connect
  593.  
  594.  
  595.   CarrierL (Y)
  596.   Jump (INITSETUP)
  597. say(&CR&Welcome to the Call back verifier at %BBS%!)
  598. *calln
  599. say(&CR&We have two phone numbers on file for you.&CR&)
  600. say(   1. /:PHONE/)
  601. say(   2. /:WORK/)
  602. say(   3. Alternate Number&CR&)
  603. setequal(b=)
  604. menuask(At which number can we call you? *)
  605. notif (%RESP%)=(3) then goto (n3)
  606. say(&CR&Please enter the alternate phone number:)
  607. picture(###-###-####)
  608. setequal(b=%resp%)
  609. *n3
  610. if (%resp%)=(1) then setequal(b=/:phone/)
  611. if (%resp%)=(2) then setequal(b=/:work/)
  612. if (%var%b)=() then goto (calln)
  613. say(&CR&We're prepared to call you at %var%b.&CR&)
  614. menuask((C)ontinue with callback? or (Q)uit? *)
  615. notif (%resp%)=(C) then goto (nogo)
  616. setnv(ld=N)
  617.  
  618. yesnoask(&CR&Is this a long-distance number from this BBS? *)
  619. if (%resp%)=(Yes) then setnv(ld=Y)
  620. if (%resp%)=(Yes) then if (%nv%longdist%)=(N) then goto (nogo)
  621. setequal(c=1)
  622. if (%resp%)=(No) then setequal(c=5)
  623. seek(badnumbs.bbs)
  624. ifNotTrue(goto(passbnck))
  625. inpopen(badnumbs.bbs)
  626. do
  627. fendif(passBNCK)
  628. inpread
  629. setnv(D=%aresp%)
  630. setequal(q=%aresp%)
  631. get(&q,1,3)
  632. setnv(W=%aresp%)
  633. setequal(q=%nv%d%)
  634. get(&q,5,20)
  635. setnv(N=%aresp%)
  636. get(&b,%nv%W%)
  637. if (%aresp%)=(%nv%n%) then goto (badn)
  638. loop
  639.  
  640. *badn
  641. say(&CR&&3&That is an unacceptable phone number.&CR&)
  642. inpclose
  643. goto (nogo)
  644.  
  645. *passBNCK
  646. inpclose
  647.  
  648. setequal(d=%var%b)
  649. get(&b,%var%c,20)
  650. setequal(b=%aresp%)
  651. say(&CR&We're ready to call you at %var%b.&CR&)
  652. yesnoask(Continue with callback? *)
  653. if (%resp%)=(No) then goto (calln)
  654. seekfile(calls.dat,%var%d)
  655. iftrue(goto(ahere))
  656. say()
  657. clearscr
  658. say(&CR&&CR&Please hang up your modem now.  We will call you back by modem.)
  659. say(&CR&When you hear the phone ring or see "RING" on your screen, type)
  660. say(&CR&ATA&CR&)
  661. say(then press ENTER or RETURN to answer the call.)
  662. say(&CR&)
  663.  
  664. write(Pausing for 3 seconds...)
  665. secpause(3)
  666. writeln(Done!)
  667. setequal(z=-1)
  668. *dd
  669. inc(z)
  670. if (%var%z)=>(%nv%dtrtime%) then goto (nogo0)
  671. secpause(1)
  672. dtr(0)
  673. ccarrier
  674. if (%ARESP%)=(-1) then goto (dd)
  675. dtr(-1)
  676. *NOCARRIER
  677. writeln()
  678. write(Waiting three seconds before attempting callback )
  679. secpause(1)
  680. write(. )
  681. secpause(1)
  682. write(. )
  683. secpause(1)
  684. writeln(.)
  685. writeln()
  686. jump (disptxt)
  687. say(%nv%init%)
  688. setequal(a=%var%b)
  689. setequal(z=-1)
  690. *cb
  691. inc(z)
  692. if (%var%z)=>(%nv%calltimes%) then goto (nogo0)
  693. ccarrier
  694. if (%ARESP%)=(-1) then goto (ison)
  695. jump (disptxt)
  696. writeln(Calling user back.   Press any key to abort.)
  697. localkey(60)
  698. iftrue(quitbbs)
  699. say(%nv%prefix%%var%a|)
  700. write(Dialed %var%a, waiting for a response from modem . . . )
  701. setequal(s=%wtime%)
  702. setequal(t=%wtime%)
  703. setequal(u=0)
  704. *watdt
  705. setequal(t=%wtime%)
  706. if (%var%s)=(%var%t) then goto (isEq)
  707. setequal(s=%wtime%)
  708. setequal(t=%var%s)
  709. inc(u)
  710. if (%var%u)<=(%nv%dialwait%) then goto (isEq)
  711. inc(v)
  712. if (%var%v)=>(%nv%dialTries%) then quitbbs
  713. flushout
  714. goto(nocarrier)
  715. *isEq
  716. localkey(60)
  717. iftrue(quitbbs)
  718. comlineinput(2)
  719. ccarrier
  720. if (%ARESP%)=(-1) then goto (ison)
  721. if (%RESP%)=(%nv%prefix%%var%a) then goto (watdt)
  722. if (%RESP%)=() then goto (watdt)
  723. if (%RESP%)=(BUSY) then goto (cb0)
  724. if (%RESP%)=(NO CARRIER) then goto (cb0)
  725. ascii
  726. if (%RESP%)=(13) then goto (watdt)
  727. if (%RESP%)=(10) then goto (watdt)
  728. if (%RESP%)=(32) then goto (watdt)
  729. if (%RESP%)=(0) then goto (watdt)
  730. setequal(y=0)
  731. *wconnect
  732. inc(y)
  733. if (%var%y)>(%nv%ct%) then quitbbs
  734. localkey(60)
  735. iftrue(quitbbs)
  736. ccarrier
  737. if (%ARESP%)=(-1) then goto (ison)
  738. comlineinput(30)
  739. localkey(60)
  740. iftrue(quitbbs)
  741. ccarrier
  742. if (%ARESP%)=(-1) then goto (ison)
  743. if (%RESP%)=(BUSY) then goto (cb0)
  744. if (%RESP%)=(NO CARRIER) then goto (cb0)
  745. if (%RESP%)=(RINGING) then goto (watdt)
  746. if (%RESP%)=(RING) then goto (watdt)
  747. if (%RESP%)=() then goto (wconnect)
  748. ascii
  749. if (%RESP%)=(13) then goto (watdt)
  750. if (%RESP%)=(10) then goto (watdt)
  751. if (%RESP%)=(32) then goto (watdt)
  752. if (%RESP%)=(0) then goto (watdt)
  753. localkey(60)
  754. iftrue(quitbbs)
  755. ccarrier
  756. if (%ARESP%)=(-1) then goto (ison)
  757. goto (wconnect)
  758. *ison
  759. writeln()
  760. write(CONNECT to user's computer.  Waiting 5 seconds )
  761. secpause(1)
  762. flushout
  763. write(. )
  764. secpause(1)
  765. write(. )
  766. secpause(3)
  767. writeln(. Announcing connect to user.)
  768. flushout
  769. say()
  770. say(This is %BBS% calling for %NAME%!)
  771. say()
  772. flushout
  773. setequal(z=-1)
  774. *tragain
  775. inc(z)
  776. if (%var%z)=>(%nv%passtries%) then goto (badp)
  777. say(Please enter your password now.)
  778. cgetpass(*)
  779. notif (%resp%)=(/:PASS/) then goto (tragain)
  780. say(Correct!  Welcome to %BBS%!)
  781. setnv(D=)
  782. setnv(N=)
  783. setnv(W=)
  784. setnv(LD=)
  785. setequal(/sec=%nv%upgsec%)
  786. setequal(/left=%nv%newtime%)
  787. appendto(calls.dat,%var%d)
  788. if (%nv%bbscon%)=(N) then goto (nocon)
  789. if (%nv%wipe%)=() then loadmem(control\open.ctl,goto (secshow))
  790. setnv(wipe=)
  791. setnv(wipmode=1)
  792. loadmem(control\open.ctl,goto(secshow))
  793. restcarrier
  794.  
  795.  
  796. *SUBSCRIBER
  797.  DateOK(/:SUBDATE/)
  798.  IfNotTrue (goto (SECSHOW))
  799.  CmpDate(%DATE%,/:SUBDATE/)
  800.  IfNotTrue(goto (SOK))
  801.  Display (display\SEXP/:SEC/)
  802.  InpOpen (sub.bbs)
  803.  
  804. *STRSUB
  805.  fEndIF(secshow)
  806.  InpRead
  807.  SetEqual(b=%ARESP%)
  808.  SetEqual(a=%ARESP%)
  809.  Len(%VAR%B)
  810.  If (%ARESP%)=(0) then Goto (STRSUB)
  811.  Get(&A,1,1)
  812.  If (%ARESP%)=(;) then Goto (STRSUB)
  813.  fcomma(b)
  814.  Find(%VAR%B, )
  815.  If (%ARESP%)=(0) then Goto (STRSUB)
  816.  SetEqual(a=%VAR%B)
  817.  SetEqual(c=%ARESP%)
  818.  AddVar(&c+-1=c)
  819.  Get(&A,1,%VAR%C)
  820.  NotIF (%ARESP%)=(/:SEC/) then Goto (STRSUB)
  821.  AddVar(&C+2=c)
  822.  Get(&B,%VAR%c,10)
  823.  SetEqual (/SEC=%ARESP%)
  824.  SetEqual (/SUB=N)
  825.  Log(--,User's subscription expired.)
  826.  Goto (SECSHOW)
  827.  
  828. *SOK
  829.  Display(display\SUB/:SEC/)
  830.  Enter
  831.  Goto (SECSHOW)
  832.  
  833. *ALREADYON
  834.  Display(display\ALREADY)
  835.  Log(<<,User already on other node!)
  836.  QuitBBS
  837.  
  838. *SYSOP
  839.  DefPause ($7$&0&[Send more text?]$0$&3& (&11&S&3&)top, (&11&N&3&)onstop or (&11&C&3&)ontinue?&12&: &7&)
  840.  DefPif (s:stop,n:nonstop)
  841.  Kill (cnodes.%NODE%,inodes.%NODE%,tagged.%NODE%,tagged2.%NODE%)
  842.  SetActivity (SYSOP Logon)
  843.  Setequal(/Graphics=ANSI)
  844.  setequal(/lastmsg=1)
  845.  selarea(1)
  846.  listfile(areas\farea1)
  847.  UserLogin(1,SYSTEM OPERATOR Logged On Locally)
  848.  Log (->,Call %CALLERS%, %GRAPHICS%, Last: /:LAST/)
  849.  Goto (SECSHOW)
  850.  
  851. *SYSSEC
  852.  If (%SYSP%)=() then Goto (CONCLR)
  853.  Say(&3&Sysop Password?&12&: &15&*)
  854.  MenuEqual(a=%SYSP%)
  855.  cGetPass(*)
  856.  If (%RESP%)=(&a) then goto (CONCLR)
  857.  Log(!!,Incorrect Sysop Pass (%RESP%))
  858.  Say(&12&Incorrect Attempt!)
  859.  QuitBBS
  860.  
  861. *NOCHK
  862.  Say(You haven't checked for new files in our file area yet!)
  863.  Goto (BAKN)
  864.  
  865. *INITSETUP
  866.  Defpause ($7$&0&[Send more text?]$0$&3& (&11&S&3&)top, (&11&N&3&)onstop or (&11&C&3&)ontinue?&12&: &7&)
  867.  DefPif (s:stop,n:nonstop)
  868.  if (%ON%)=(FROM DOOR) then goto (doorb)
  869.  SetEqual (/sec=%NEWSEC%)
  870.  SetEqual (/SCREENLEN=23)
  871.  SetActivity (Logging On...)
  872.  linefeed(1)
  873.  %Clogin% Kill (cnodes.%NODE%,inodes.%NODE%,tagged.%NODE%,tagged2.%NODE%,psys.%node%)
  874. ret
  875.  
  876. *disptxt
  877. comlineinput(3)
  878. writeln(%RESP%)
  879. *d
  880. comlineinput(1)
  881. writeln(%resp%)
  882. if(%ARESP%)=(0) then goto (d)
  883. ret
  884.  
  885. *nogo
  886. say(Sorry, no access...&CR&)
  887. enter
  888. setnv(N=)
  889. setnv(W=)
  890. setnv(LD=)
  891. setnv(D=)
  892. goto (ret0)
  893.  
  894. *nogo0
  895. say(Sorry, no access...&CR&)
  896. quitbbs
  897.  
  898. *ahere
  899. say(&CR&The phone number you entered is in our list of called numbers.  Please)
  900. say(contact the Sysop if this is an error.&CR&)
  901. goto (nogo)
  902.  
  903. *badp
  904. say(&CR&It appears you forgot your password.  Please call back and contact the)
  905. say(Sysop if you can not remember it.)
  906. say()
  907. secpause(1)
  908. quitbbs
  909.  
  910. *nocon
  911. say(Please call back to take advantage of your new access level.  Thank you.&CR&)
  912. enter
  913. quitbbs
  914.  
  915. *cb0
  916. writeln()
  917. write(Waiting 3 seconds before calling user . . .)
  918. secpause(3)
  919. writeln(Done!)
  920. goto(cb)
  921.  
  922. *ret0
  923. if (%nv%wipe%)=() then return
  924. setnv(wipe=)
  925. setnv(wipmode=1)
  926. return
  927.  
  928. *doorb
  929. if (%nv%wipe%)=() then loadmem(control\doorback.ctl)
  930. setnv(wipE=)
  931. setnv(wipmode=1)
  932. loadmem(control\doorback.ctl)
  933. SCR3CTL░    *SCR3
  934. SETEQUAL(A=\:INT6\)
  935. SETLEN(A=5)
  936. SAY(&7&(&12&1&7&)  Integer (6)  &14&%VAR%A                 &7&(&12&9&7&)  Expert Mode    &14&\:EXPERT\)
  937. SETEQUAL(A=\:CHR1\)
  938. SETLEN(A=3)
  939. SAY(&7&(&12&2&7&)  Char (1)     &14&%VAR%A                   &7&(&12&10&7&) Multi Chat     &14&\:DEFAVAIL\)
  940. SETEQUAL(A=\:CHR2\)
  941. SETLEN(A=3)
  942. SAY(&7&(&12&3&7&)  Char (2)     &14&%VAR%A                   &7&(&12&11&7&) Logon Page     &14&\:PSYS\)
  943. SETEQUAL(A=\:CHR3\)
  944. SETLEN(A=3)
  945. SAY(&7&(&12&4&7&)  Char (3)     &14&%VAR%A                   &7&(&12&12&7&) No Time Limit  &14&\:ITIME\)
  946. SETEQUAL(A=\:MSENT\)
  947. SETLEN(A=5)
  948. SAY(&7&(&12&5&7&)  Msgs Entered &14&%VAR%A                 &7&(&12&13&7&) Ansi Music     &14&\:ANSMUSIC\)
  949. SETEQUAL(A=\:SUBDATE\)
  950. SETLEN(A=10)
  951. SAY(&7&(&12&6&7&)  Sub Exp      &14&%VAR%A            &7&(&12&14&7&) Flag 1        &14& \:FLAG01\)
  952. SETEQUAL(A=\:EXPTO\)
  953. SETLEN(A=5)
  954. SAY(&7&(&12&7&7&)  Expire Sec   &14&%VAR%A                 &7&(&12&15&7&) Flag 2         &14&\:FLAG02\)
  955. SETEQUAL(A=\:EXPSEC\)
  956. SETLEN(A=5)
  957. SAY(&7&(&12&8&7&)  Prev Sec     &14&%VAR%A                 &7&(&12&16&7&) Flag 3         &14&\:FLAG03\&CR&)
  958. AnsiGoto(22,9);
  959. Say(&3&-USER: [&15&\:NAME\&3&]-)
  960. SAY(&7&(&12&17&7&) &7&Flag 4  &14&\:FL04\ &7&(&12&24&7&) Flag 11 &14&\:FL11\ &7&(&12&31&7&) Flag 18 &14&\:FL18\ &7&(&12&38&7&) Flag 25 &14&\:FL25\ &7&(&12&45&7&) Flag 32 &14&\:FL32\)
  961. SAY(&7&(&12&18&7&) &7&Flag 5  &14&\:FL05\ &7&(&12&25&7&) Flag 12 &14&\:FL12\ &7&(&12&32&7&) Flag 19 &14&\:FL19\ &7&(&12&39&7&) Flag 26 &14&\:FL26\ &7&(&12&46&7&) Flag 33 &14&\:FL33\)
  962. SAY(&7&(&12&19&7&) &7&Flag 6  &14&\:FL06\ &7&(&12&26&7&) Flag 13 &14&\:FL13\ &7&(&12&33&7&) Flag 20 &14&\:FL20\ &7&(&12&40&7&) Flag 27 &14&\:FL27\ &7&(&12&47&7&) Flag 34 &14&\:FL34\)
  963. SAY(&7&(&12&20&7&) &7&Flag 7  &14&\:FL07\ &7&(&12&27&7&) Flag 14 &14&\:FL14\ &7&(&12&34&7&) Flag 21 &14&\:FL21\ &7&(&12&41&7&) Flag 28 &14&\:FL28\ &7&(&12&48&7&) Flag 35 &14&\:FL35\)
  964. SAY(&7&(&12&21&7&) &7&Flag 8  &14&\:FL08\ &7&(&12&28&7&) Flag 15 &14&\:FL15\ &7&(&12&35&7&) Flag 22 &14&\:FL22\ &7&(&12&42&7&) Flag 29 &14&\:FL29\ &7&(&12&49&7&) Flag 36 &14&\:FL36\)
  965. SAY(&7&(&12&22&7&) &7&Flag 9  &14&\:FL09\ &7&(&12&29&7&) Flag 16 &14&\:FL16\ &7&(&12&36&7&) Flag 23 &14&\:FL23\ &7&(&12&43&7&) Flag 30 &14&\:FL30\ &7&(&12&50&7&) Flag 37 &14&\:FL37\)
  966. SAY(&7&(&12&23&7&) &7&Flag 10 &14&\:FL10\ &7&(&12&30&7&) Flag 17 &14&\:FL17\ &7&(&12&37&7&) Flag 24 &14&\:FL24\ &7&(&12&44&7&) Flag 31 &14&\:FL31\ &7&(&12&51&7&) Flag 38 &14&\:FL38\)
  967. RETURN
  968. OVERLCTL⌡display(display\overl)
  969. secpause(1)
  970. say(Unregistered user 5 second delay *)
  971. secpause(1)
  972. say(. *)
  973. secpause(1)
  974. say(. *)
  975. secpause(1)
  976. say(. *)
  977. secpause(1)
  978. say(. *)
  979. secpause(1)
  980. say(.&CR&)
  981. enter
  982. clearscr
  983. loadmem(\doors\pbreg\pbreg.ctl)
  984. SCR1CTL▄*SCR1
  985. AnsiGoto(1,2);
  986. GET(\:NAME\                         ,1,25)
  987. SAY(&7&(&12&1&7&)  User Name    &14& %ARESP%      &7&(&12&16&7&) Uploads       &14&\:UPLOADS\)
  988. GET(\:ALIAS\                         ,1,25)
  989. SAY(&7&(&12&2&7&)  Alias        &14& %ARESP%      &7&(&12&17&7&) Downloads     &14&\:DOWNLOADS\)
  990. SETEQUAL(A=\:COMPANY\)
  991. SETLEN(A=30)
  992. SAY(&7&(&12&3&7&)  Company Name &14& %VAR%A &7&(&12&18&7&) Download Area &14&\:LASTDOWN\)
  993. GET(\:TITLE\          ,1,10)
  994. SAY(&7&(&12&4&7&)  Title        &14& %ARESP%                     &7&(&12&19&7&) Upload Area   &14&\:LASTUP\)
  995. GET(\:MHSNAME\        ,1,8)
  996. SAY(&7&(&12&5&7&)  MHS Name     &14& %ARESP%                       &7&(&12&20&7&) Conference    &14&\:LASTMSG\)
  997. SETEQUAL(A=\:STREET1\)
  998. SETLEN(A=30)
  999. SAY(&7&(&12&6&7&)  Street (1/2) &14& %VAR%A &7&(&12&21&7&) Security      &14&\:SEC\)
  1000. SETEQUAL(A=\:STREET\)
  1001. SETLEN(A=30)
  1002. SAY(&7&(&12&7&7&)  Street (2/2) &14& %VAR%A &7&(&12&22&7&) KB D/L'ed     &14&\:KDOWN\)
  1003. SETEQUAL(A=\:FROM\)
  1004. SETLEN(A=30)
  1005. SAY(&7&(&12&8&7&)  City, ST     &14& %VAR%A &7&(&12&23&7&) KB U/L'ed     &14&\:KUP\)
  1006. GET(\:ZIP\          ,1,10)
  1007. SAY(&7&(&12&9&7&)  Zip Code     &14& %ARESP%                     &7&(&12&24&7&) Graphics      &14&\:GRAPHICS\)
  1008. SETEQUAL(A=\:COUNTRY\)
  1009. SETLEN(A=30)
  1010. SAY(&7&(&12&10&7&) Country      &14& %VAR%A &7&(&12&25&7&) Screen Length &14&\:SCREENLEN\)
  1011. GET(\:PHONE\             ,1,13)
  1012. SAY(&7&(&12&11&7&) Phone (V)    &14& %ARESP%                  &7&(&12&26&7&) Bytes Today   &14&\:BYTESTODAY\)
  1013. GET(\:WORK\             ,1,13)
  1014. SAY(&7&(&12&12&7&) Phone (D)    &14& %ARESP%                  &7&(&12&27&7&) Minutes Used  &14&\:MINSU\)
  1015. SAY(&7&(&12&13&7&) D.O.B.       &14& \:BIRTH\                       &7&(&12&28&7&) Carrier Drops &14&\:DROPPED\)
  1016. SETEQUAL(A=\:PASS\)
  1017. SETLEN(A=20)
  1018. SAY(&7&(&12&14&7&) Password     &14& %VAR%A           &7&(&12&29&7&) Chat Requests &14&\:CHATREQ\)
  1019. SAY(&7&(&12&15&7&) Last Time On &14& \:LASTT\                          &7&(&12&30&7&) Cutoff Times  &14&\:CUTOFF\)
  1020. RETURN
  1021. SCR2CTLª*SCR2
  1022. SAY(&7&(&12&1&7&)  Last Date On &14&\:LAST\              &7&(&12&16&7&) Protocol       &14&\:PROTOCOL\)
  1023. GET(\:LEFT\     ,1,5)
  1024. SAY(&7&(&12&2&7&)  Time Left    &14&%ARESP%                 &7&(&12&17&7&) New Scan       &14&\:LASTCHK\)
  1025. GET(\:TIMESON\     ,1,5)
  1026. SAY(&7&(&12&3&7&)  Times On     &14&%ARESP%                 &7&(&12&18&7&) Doors Loaded   &14&\:DOORSE\)
  1027. SAY(&7&(&12&4&7&)  First Call   &14&\:FIRST\&CR&)
  1028. AnsiGoto(41,5);
  1029. Say(&3&-USER: [&15&\:NAME\&3&]-)
  1030. setequal(a=\:MEMO\)
  1031. setlen(a=40)
  1032. SAY(&7&(&12&5&7&)  Memo (1)     &14&%VAR%A)
  1033. ;SAY(&7&(5)  Memo (1)     &14&%VAR%A  &7&[&15&\:NAME\&7&])
  1034. SETEQUAL(A=\:MEMO2\)
  1035. SETLEN(A=20)
  1036. SAY(&7&(&12&6&7&)  Memo (2)     &14&%VAR%A  &7&(&12&19&7&) Sub. Balance   &14&\:SUBBAL\)
  1037. SETEQUAL(A=\:MEMO3\)
  1038. SETLEN(A=20)
  1039. SAY(&7&(&12&7&7&)  Memo (3)     &14&%VAR%A  &7&(&12&20&7&) Subscriber?    &14&\:SUB\)
  1040. SETEQUAL(A=\:MEMO4\)
  1041. SETLEN(a=20)
  1042. SAY(&7&(&12&8&7&)  Memo (4)     &14&%VAR%A  &7&(&12&21&7&) Time Limit     &14&\:TL\)
  1043. SETEQUAL(A=\:MEMO5\)
  1044. SETLEN(A=20)
  1045. SAY(&7&(&12&9&7&)  Memo (5)     &14&%VAR%A  &7&(&12&22&7&) File Ratio     &14&\:FRATIO\)
  1046. SETEQUAL(A=\:MEMO6\)
  1047. SETLEN(A=20)
  1048. SAY(&7&(&12&10&7&) Memo (6)     &14&%VAR%A  &7&(&12&23&7&) D/Ls Today     &14&\:DAILYDL\)
  1049. SETEQUAL(A=\:INT1\)
  1050. SETLEN(A=5)
  1051. SAY(&7&(&12&11&7&) Integer (1)  &14&%VAR%A                 &7&(&12&24&7&) U/Ls Today     &14&\:DAILYUL\)
  1052. SETEQUAL(A=\:INT2\)
  1053. SETLEN(A=5)
  1054. SAY(&7&(&12&12&7&) Integer (2)  &14&%VAR%A                 &7&(&12&25&7&) Netmail Bal.   &14&\:NBAL\)
  1055. SETEQUAL(A=\:INT3\)
  1056. SETLEN(A=5)
  1057. SAY(&7&(&12&13&7&) Integer (3)  &14&%VAR%A                 &7&(&12&26&7&) Computer       &14&\:COMP\)
  1058. SETEQUAL(A=\:INT4\)                        
  1059. SETLEN(A=5)
  1060. SAY(&7&(&12&14&7&) Integer (4)  &14&%VAR%A                 &7&(&12&27&7&) Mail Waiting?  &14&\:WAIT\)
  1061. SETEQUAL(A=\:INT5\)
  1062. SETLEN(A=5)
  1063. SAY(&7&(&12&15&7&) Integer (5)  &14&%VAR%A                 &7&(&12&28&7&) Locked Out?    &14&\:LO\)
  1064. RETURN
  1065. ALREADYCTL═ Log(<<,User already on another node!)
  1066. if (%nv%wipmode%)=(1) then goto (wipa)
  1067.  Display(display\ALREADY)
  1068.  secpause(2)
  1069.  QuitBBS
  1070.  
  1071. *wipa
  1072. setequal(c=13~Your account is already logged in on another node.  You are allow to use only one node at a time.~Already Online~0~)
  1073. jump (wipc)
  1074. secpause(3)
  1075. quitbbs
  1076.  
  1077. *GCHAR
  1078. COMPRINT(%NV%TEXT%)
  1079. SETEQUAL(A=0)
  1080. DO
  1081. COMKEY
  1082. ASCII
  1083. IF(%ARESP%)=(21) THEN GOTO(GCHAR)
  1084. INC(A)
  1085. IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET
  1086. IF(%ARESP%)=(&B) THEN RET
  1087. IF(&A)>(45) THEN RET
  1088. IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%)
  1089. DELAY18TH(2)
  1090. LOOP
  1091. *WIPC
  1092. LOCALKEY(1)
  1093. IFNOTTRUE(GOTO(NOLKEY))
  1094. SYSKEYCHECK
  1095. SETEQUAL(/RESP=)
  1096. SETEQUAL(/RESP=)
  1097. *NOLKEY
  1098. CCARRIER
  1099. IF(%ARESP%)=(0) THEN GOTO (NOC0)
  1100. CHECKSUM(%VAR%C)
  1101. SETEQUAL(B=6)
  1102. SETNV(TEXT=$%ARESP%%VAR%C%C%13%)
  1103. SETNV(PBACK=)
  1104. JUMP(GCHAR)
  1105. IF(%ARESP%)<>(6) THEN JUMP(GCHAR)
  1106. SETEQUAL(/IBUFF=%NV%PBACK%)
  1107. LEN(%NV%PBACK%)
  1108. SETEQUAL(/IBUFF0=%ARESP%)
  1109. RET
  1110. *NOC0
  1111. log(<<,Carrier lost.)
  1112. quitbbs
  1113. ON2CTLZ;Online Help Database
  1114. ;Programmed for Powerboard World Support BBS
  1115. ;Programmed by Doug Vermes, 12/29/93
  1116.  
  1117. *Disp
  1118. SetActivity (Main Menu)
  1119. ;if(/:EXPERT/)=(Y) then linefeed(1)
  1120. ;if(/:EXPERT/)=(Y) then Goto (Prompt)
  1121. *sdisp
  1122. Display (onhelp\onhelp3)
  1123.  
  1124. *Prompt
  1125. SetEqual(a=)
  1126. Say(&15&Time Remaining: &14&%LEFT% &15&minutes.)
  1127. MenuAsk(&3&Online Help Selection or Keyword to Search For? &12&*)
  1128. *Check
  1129. Bigif (G:BYE,?:SDISP,Q:MAIN)
  1130. ;Bigif (G:BYE,?:SDISP,Q:MAIN,1:REG,7:EVENT,8:FILES,13:MULTI,14:PBC,16:PWRMAIL,12:MISC,21:ZC,4:COMM,9:HARDWARE,19:SOFTWARE,11:MSGAREA,26:UPGRADEQS,6:DOORS,20:SPECIFIC)
  1131.  
  1132. ;BELOW ARE FOR SUB-MENUS
  1133. If(%RESP%)=(1) then SetEqual(n=ONREG)
  1134. If(%RESP%)=(4) then SetEqual(n=ONCOMM)
  1135. If(%RESP%)=(6) then SetEqual(n=ONDOORS)
  1136. If(%RESP%)=(7) then SetEqual(n=ONEVENT)
  1137. If(%RESP%)=(8) then SetEqual(n=ONFILE)
  1138. If(%RESP%)=(9) then SetEqual(n=ONHARD)
  1139. If(%RESP%)=(11) then SetEqual(n=ONMSG)
  1140. If(%RESP%)=(12) then SetEqual(n=ONMISC)
  1141. If(%RESP%)=(13) then SetEqual(n=ONMULTI)
  1142. If(%RESP%)=(14) then SetEqual(n=ONPBC)
  1143. If(%RESP%)=(16) then SetEqual(n=ONPM)
  1144. If(%RESP%)=(19) then SetEqual(n=ONSOFT)
  1145. If(%RESP%)=(20) then SetEqual(n=ONSPEC)
  1146. If(%RESP%)=(21) then SetEqual(n=ONZC)
  1147. If(%RESP%)=(26) then SetEqual(n=ONUPGRD)
  1148.  
  1149. ;BELOW ARE FOR ONE-SCREEN HELPS
  1150. If(%RESP%)=(15) then SetEqual(n=PERFORM)
  1151. ;If(%RESP%)=(3) then SetEqual(n=MULTI)
  1152. If(%RESP%)=(5) then SetEqual(n=DISP)
  1153. If(%RESP%)=(3) then SetEqual(n=CDROM)
  1154. If(%RESP%)=(18) then SetEqual(n=LOGON)
  1155. ;If(%RESP%)=(16) then SetEqual(n=PM)
  1156. If(%RESP%)=(10) then SetEqual(n=MEMORY)
  1157. If(%RESP%)=(22) then SetEqual(n=PHONES)
  1158. If(%RESP%)=(24) then Setequal(n=SYSREQS)
  1159. if(%RESP%)=(25) then SetEqual(n=TECHSPECS)
  1160. If(%RESP%)=(23) then SetEqual(n=DLUPDATE)
  1161. If(%RESP%)=(17) then SetEqual(n=PBLOAD)
  1162. If(%RESP%)=(27) then SetEqual(n=REGUPG)
  1163. Number(%RESP%)
  1164. IfTrue(Goto(Generic))
  1165. ;BigIf (G:BYE,?:SDISP,Q:MAIN,1:REG,2:PERFORM,3:MULTI,4:PBC,5:ZC,6:COMM,7:DISPHLP,8:CDROM,9:LOGON,10:PM)
  1166. ;BigIf (11:EVENT,12:FILES,13:MEM,14:HARDWARE,15:SOFTWARE,16:MSGAREA,17:PHONENUMS,18:SYSREQS,19:TECHSPECS,20:DLUPDATES)
  1167. ;BigIf (21:PBLOAD)
  1168. Goto(Keyword)
  1169. Jump (bsel)
  1170. Goto(Disp)
  1171.  
  1172. *KeyWord
  1173.  SetEqual(c=1)
  1174.  ;%VAR%C will be a counter var
  1175.  SetEqual(d=1)
  1176.  ;%VAR%D will be a clone var used for screen pausing
  1177.  MenuEqual(q=%RESP%)
  1178.  ;%VAR%Q stores Keyword Being Searched For
  1179.  Seek(onhelp\list.txt)
  1180.  IfNotTrue(Goto(Disp))
  1181.  ClearScr
  1182.  Say(&CR&&14&Keyword Search for: &12&%VAR%Q)
  1183.  Say(&CR&&11&#  &12&HELP SECTION)
  1184.  Say(&7&-------------------------------------------------------------------------)
  1185.  InpOpen(Onhelp\list.txt)
  1186.  Say(&15&\*)
  1187.  Do
  1188.   Back(1)
  1189.   Say(&15&\*)
  1190.   InpRead
  1191.   Back(1)
  1192.   Say(|*)
  1193.   SetEqual(r=%ARESP%)
  1194.   Back(1)
  1195.   Say(/*)
  1196.   ;%VAR%R stores filename temporarily
  1197.   SeekFile(ONHELP\%VAR%R,%VAR%Q)
  1198.   Back(1)
  1199.   Say(-*)
  1200.   IfTrue(Jump(SetAndInc))
  1201.  EofLoop  
  1202.  *FinishUp
  1203.  InpClose
  1204.  Back(1)
  1205. *GetPrompt 
  1206.  MenuAsk(&3&Help Section to View (Q to Quit): &14&*)
  1207.  If(%RESP%)=(Q) then Goto(Main)
  1208.  Number(%RESP%)
  1209.  IfNotTrue(goto(GetPrompt))
  1210.  CmpVal(%RESP%,%VAR%C)
  1211.  IfNotTrue(Goto(InvSection))
  1212.  SetEqual(x=%RESP%)
  1213.  Find(^:x^,.)
  1214.  If(%ARESP%)=(0) then Goto(NoExten)
  1215.  AddVar(%ARESP%+-1=u)
  1216.  Get(^:x^,1,%VAR%U)
  1217.  Display(ONHELP\%ARESP%)
  1218. Goto(Disp)
  1219.   *SetAndInc
  1220.   SetEqual(^%VAR%C=%VAR%R)
  1221.   Back(1)
  1222.   ;Say(&3&%VAR%C: &12&%VAR%R*)
  1223.   Say(&3&%VAR%C: &12&*)
  1224.   SetEqual(/NDX=ONHELP\ONHELP.NDX)
  1225.   SeekUser(%VAR%R)
  1226.   IfTrue(Say(%NDFROM%))
  1227.   IfNotTrue(Say(%VAR%R))
  1228.   Inc(c)
  1229.   Inc(d)
  1230.   CmpVal(%VAR%D,/:SCREENLEN/)
  1231.   IfTrue(ret)
  1232.   Setequal(d=1)
  1233.   PausePrompt
  1234.   If(%ARESP%)=(STOP) then Goto(FinishUp)
  1235.   Ret
  1236.  
  1237. *InvSection
  1238.  Beep(1)
  1239.  Say(&12&Invalid Choice!)
  1240.  Secpause(1)
  1241.  Goto(GetPrompt)
  1242.  
  1243. *MAIN
  1244. ;EnufSec(10)
  1245. ;IfNotTrue(Goto(BSel))
  1246. ;LoadMem(CONTROL\MAIN.MNU)
  1247. Return
  1248.  
  1249. *BYE
  1250. EnufSec(10)
  1251. IfNotTrue(Goto(BSel))
  1252. LoadSub(CONTROL\MACROS\BYE.CTL)
  1253. Goto(Disp)
  1254.  
  1255. *REG
  1256.  LoadSub(CONTROL\ONREG.CTL)
  1257.  ;Display(ONHELP\REG)
  1258.  ;Enter
  1259.  If(%RESP%)=(QUITTING) then Return
  1260.  Goto(Disp)
  1261.  
  1262. *EVENT
  1263.  LoadSub(CONTROL\ONEVENT.CTL)
  1264.  If(%RESP%)=(QUITTING) then Return
  1265.  Goto(Disp)
  1266.  
  1267. ;*PWRMAIL
  1268. ; LoadSub(CONTROL\ONPM.CTL)
  1269. ; If(%RESP%)=(QUITTING) then Return
  1270. ; Goto(Disp)
  1271.  
  1272. *SPECIFIC
  1273.  LoadSub(CONTROL\ONSPEC.CTL)
  1274.  If(%RESP%)=(QUITTING) then Return
  1275.  Goto(Disp)
  1276.  
  1277. *MISC
  1278.  LoadSub(CONTROL\ONMISC.CTL)
  1279.  If(%RESP%)=(QUITTING) then Return
  1280.  Goto(Disp)
  1281.  
  1282. *FILES
  1283.  LoadSub(CONTROL\ONFILE.CTL)
  1284.  If(%RESP%)=(QUITTING) then Return
  1285.  Goto(Disp)
  1286.  
  1287. *DOORS
  1288.  LoadSub(CONTROL\ONDOORS.CTL)
  1289.  If(%RESP%)=(QUITTING) then Return
  1290.  Goto(Disp)
  1291.  
  1292. *MULTI
  1293.  LoadSub(CONTROL\ONMULTI.CTL)
  1294.  If(%RESP%)=(QUITTING) then Return
  1295.  Goto(Disp)
  1296.  
  1297. *GENERIC
  1298.  Seek(CONTROL\%VAR%N.CTL)
  1299.  IfTrue(Goto(LoadCTL))
  1300.  Display(ONHELP\%VAR%N)
  1301.  Goto(Disp)
  1302.  
  1303. *LOADCTL
  1304.  LoadSub(CONTROL\%VAR%N.CTL)
  1305.  If(%RESP%)=(QUITTING) then Return
  1306.  Goto(Disp)
  1307.  
  1308. *COMM
  1309.  LoadSub(CONTROL\ONCOMM.CTL)
  1310.  ;Display(ONHELP\COMM)
  1311.  If(%RESP%)=(QUITTING) then Return
  1312.  Goto(Disp)
  1313.  
  1314. *UPGRADEQS
  1315.  LoadSub(CONTROL\ONUPGRD.CTL)
  1316.  If(%RESP%)=(QUITTING) then Return
  1317.  Goto(Disp)
  1318.  
  1319. *MULTI
  1320.  *Msdisp
  1321.    Display(ONHELP\MULTHELP)
  1322.  *MPrompt
  1323.    SetEqual(a=)
  1324.    Say(&15&Time Remaining: &14&%LEFT% &15&minutes.)
  1325.    MenuAsk(&3&Online Help Selection? &12&*)
  1326.  *MCheck
  1327.    BigIf (G:BYE,?:MSDISP,R:SDISP,Q:MAIN,1:INTERNODE,2:ONENODE)
  1328.    Jump (bsel)
  1329.    Goto(MsDisp)
  1330.  
  1331.  *INTERNODE
  1332.    Display(ONHELP\INTERNOD)
  1333.    Goto(MSDisp)
  1334.  
  1335.  *ONENODE
  1336.    Display(ONHELP\ONENODE)
  1337.    Goto(MSDisp)
  1338.  
  1339. *PBC
  1340.   LoadSub(Control\onpbc.ctl)
  1341.   If(%RESP%)=(QUITTING) then Return
  1342.   Goto(Disp)
  1343.  
  1344. *ZC
  1345.   LoadSub(Control\onzc.ctl)
  1346.   If(%RESP%)=(QUITTING) then Return
  1347.   Goto(Disp)
  1348.  
  1349. *HARDWARE
  1350.   LoadSub(CONTROL\ONHARD.CTL)
  1351.   If(%RESP%)=(QUITTING) then Return
  1352.   Goto(Disp)
  1353.  
  1354. *SOFTWARE
  1355.   LoadSub(CONTROL\ONSOFT.CTL)
  1356.   If(%RESP%)=(QUITTING) then Return
  1357.   Goto(Disp)
  1358.  
  1359. *MSGAREA
  1360.   LoadSub(CONTROL\ONMSG.CTL)
  1361.   If(%RESP%)=(QUITTING) then Return
  1362.   Goto(Disp)
  1363.  
  1364. *bSel
  1365. LoadSub(control\macros\badsel.ctl) ;invalid selection
  1366. ;Goto (disp)
  1367. Ret
  1368.  
  1369. *NOEXTEN
  1370.  Display(ONHELP\^:%RESP%^)
  1371.  Goto(disp)
  1372. UEDIT4CTLΦ    *StUedit4
  1373.  
  1374.  BigIf (O:ChgTOn,R:ChgComp,A:ChgDrops,W:ChgWrk,I:ChgSub,X:ChgSDate,V:ChgAvail)
  1375. *ChgTOn
  1376.  AnsiGoto (21,17)
  1377.  ;Goes to the location 21,17 on the screen. (21 characters over, 17 down)
  1378.  ask (&15&Enter New Times On: &2&*)
  1379. ;Gets input from the user. The * tells it NOT to go to the next line. 
  1380.  Number (%RESP%)
  1381. ;Checks to see if %RESP%, the user's response, is a number. 
  1382.  IfNotTrue (goto (BadTOn))
  1383. ;If %RESP% isn't a number, then go to the label *BadTOn 
  1384.  SetEqual (>TIMESON=%RESP%)
  1385. ;Set the number of times in the currently loaded but unused record file to
  1386. ;the value contained in (%RESP%a user-entered value). (For a complete list
  1387. ;of all percent codes [like >TIMESON] refer to the Powerboard docs.
  1388.  Goto (DoIt)
  1389. ;Goes to the label *DoIt, which is just a place where some variable values
  1390. ;are changed, and where it saves the currently loaded record file to disk.
  1391.  
  1392. *BadTOn
  1393.  AnsiGoto (21,17)
  1394.  Say (&4&Bad Times On Value, Not a Number.*)
  1395.  SecPause (2) ;Pauses for 2 seconds.
  1396.  AnsiGoto (21,17)
  1397.  Say (                                 )
  1398. ;Used to clear the space where it said "Bad Times On..."
  1399.  Goto (ChgTOn)
  1400.  
  1401. *ChgComp
  1402.  AnsiGoto (21,17)
  1403.  ask (&15&Enter New Computer Using: &2&*)
  1404.  SetEqual (>COMP=%RESP%)
  1405.  Goto (DoIt)
  1406.  
  1407. *ChgDrops
  1408.  AnsiGoto (21,17)
  1409.  Say (&15&Enter New Carrier Dropped Times:                        &2&*)
  1410.  AnsiGoto (54,17)
  1411.  Ask (*)
  1412.  Number (%RESP%)
  1413.  IfNotTrue (goto (BadDrops))
  1414.  SetEqual (>DROPPED=%RESP%)
  1415.  Goto (DoIt)
  1416.  
  1417. *BadDrops
  1418.  AnsiGoto (21,17)
  1419.  Say (&4&Bad Carrier Dropped Amount, Not a Number.*)
  1420.  SecPause (2)
  1421.  AnsiGoto (21,17)
  1422.  Say (                                         )
  1423.  Goto (ChgDrops)
  1424.  
  1425. *ChgWrk
  1426.  AnsiGoto (21,16)
  1427.  Say (&12&Enter New Work Phone Number: &2&)
  1428.  AnsiGoto (27,17)
  1429.  Picture (###-###-####)
  1430.  SetEqual (>WORK=%RESP%)
  1431.  Goto (DoIt)
  1432.  
  1433. *ChgSub
  1434.  AnsiGoto (25,17)
  1435.  yesnoask (&12&Subscriber? &2&*)
  1436.  SetEqual (>SUB=%RESP%)
  1437.  Goto (DoIt)
  1438.  
  1439. *ChgSDate
  1440.  AnsiGoto (21,16)
  1441.  Say (&12&Enter New Subscription Expiration Date: &2&*)
  1442.  AnsiGoto (25,17)
  1443.  Picture (##-##-##)
  1444.  SetEqual (>SUBDATE=%RESP%)
  1445.  Goto (DoIt)
  1446.  
  1447. *ChgAvail
  1448.  AnsiGoto (21,17)
  1449.  YesNoAsk (&12&Default User Available For Chat: &2&*)
  1450.  SetEqual (>DEFAVAIL=%RESP%)
  1451.  Goto (DoIt)
  1452.  
  1453. *DoIt
  1454.  SetEqual (e=1)
  1455. ;Set it that the user is flagged as editing a user record.
  1456.  SetEqual (w=1)
  1457. ;Set it that the user is flagged as editing a user record. 
  1458. ;Again, %var%e and %var%w are similar. I don't know the difference, really.
  1459.  SaveUser (%var%z)
  1460.  Loadmem (control\uedit2.ctl,goto(clearinfo))
  1461. BOXSCANCTL ;BOXSCAN PROCEDURE
  1462.  
  1463. ZAP (LCONF.%NODE%,/:LASTMSG/)
  1464. CLEARMEM
  1465. SETEQUAL (H=0)
  1466. SAY (&CR& &10&Checking your Mail Box:&CR&)
  1467.  
  1468. *STSCAN
  1469. INC (H)
  1470. SELAREA (%VAR%H)
  1471. ENUFSEC (%AREASEC%)
  1472. IFNOTTRUE (GOTO (ELOOP))
  1473. MSGHIGH(%VAR%H)
  1474. addvar(%aresp%+-1=z)
  1475. SETEQUAL(M=MAILBOX\░%SEC%.%VAR%H)
  1476. JUMP (SCAN)
  1477. SETEQUAL(M=MAILBOX\%USERN%.%VAR%H)
  1478. SETEQUAL(Z=0)
  1479. JUMP (SCAN)
  1480. IF (&A)=(10) THEN KILL (MAILBOX\%USERN%.%VAR%H)
  1481. *ELOOP
  1482. NOTIF (%VAR%H)=(%MAXAREA%) THEN GOTO (STSCAN)
  1483. INPLINE (LCONF.%NODE%,1)
  1484. SETEQUAL(/LASTMSG=%ARESP%)
  1485. SELAREA(/:LASTMSG/)
  1486. SETEQUAL(/WAIT=N)
  1487. LOADMEM (CONTROL\BULLETS.CTL)
  1488. *DDSP
  1489. HIMSG(/:LASTMSG/)
  1490. SETEQUAL(F=%ARESP%)
  1491. SAY (^:1^*)
  1492. LOWMSG(/:LASTMSG/)
  1493. SETEQUAL(N=%ARESP%)
  1494. DO
  1495. IF (^:U^)=() THEN RET
  1496. SAY (, ^:U^*)
  1497. INC (U)
  1498. LOOP
  1499.  
  1500. *SCAN
  1501. SEEK (%VAR%M)
  1502. IFNOTTRUE (RET)
  1503. IF (%VAR%Z)=(0) THEN GOTO (DI1)
  1504. INC(Z)
  1505. INPOPEN (%VAR%M)
  1506. ZAP(MSLST.%NODE%)
  1507.  
  1508. DO
  1509. INPREAD
  1510. SETEQUAL(L=%ARESP%)
  1511. CMPVAL(%VAR%Z,%VAR%L)
  1512. IFTRUE(APPENDTO(MSLST.%NODE%,%VAR%L))
  1513. EOFLOOP
  1514.  
  1515. INPCLOSE
  1516. LINES(MSLST.%NODE%)
  1517. IF (%ARESP%)=(0) THEN RET
  1518. ARRAYREAD (MSLST.%NODE%)
  1519.  
  1520. GOTO (DI2)
  1521.  
  1522. *DI1
  1523. ARRAYREAD (%VAR%M)
  1524. *DI2
  1525. SETEQUAL(/LASTMSG=%VAR%H)
  1526. SETEQUAL(U=2)
  1527. SAY (&2&%AREANAME% Conference: &14&*)
  1528. JUMP (DDSP)
  1529. SETEQUAL(U=1)
  1530. SAY(&CR&&CR&&3& Would you like to read these messages? &9&[   ]&15&*)
  1531. SETEQUAL(/nvMsgReadType=10)
  1532. BACK(4)
  1533. SETEQUAL(Y=^:1^)
  1534. YESNOASK(*)
  1535. SETEQUAL(a=0)
  1536. IF (%RESP%)=(No) THEN RET
  1537. ZAP(HI.%NODE%,%VAR%H)
  1538. LOADSUB (CONTROL\READ.CTL,GOTO(REPEAT))
  1539. INPLINE(HI.%NODE%,1)
  1540. SETEQUAL(H=%ARESP%)
  1541. CLEARMEM
  1542. SETEQUAL(A=10)
  1543. RET
  1544. ONABANDCTL~  if (/lastmsg)=(1) then goto (Return)
  1545.   
  1546.   *AbandonConf
  1547.   setequal(/resp=1)
  1548.   CmpValO(%MAXAREA%,%RESP%) ;cmpvalo will report no if it's under 1.
  1549.   IfTrue (Return))
  1550.   SelArea(%RESP%)
  1551.   EnufSec(%AREASEC%)
  1552.   IfTrue(Goto (cnt))
  1553.   SelArea(/:LASTMSG/)
  1554.   Say(&CR&&14&Your security level isn't sufficient to access the main conference.&CR&)
  1555.   enter
  1556.   Return
  1557.   *cnt
  1558.   ListFile(areas\farea%RESP%)
  1559.   if (%FAREA%)=(AREAS\FAREA%RESP%) then goto (fsetup)
  1560.   Return
  1561.  
  1562.   *fsetup
  1563.   selfarea(4)
  1564.   setequal(/lastdown=4)
  1565.   *seled
  1566.   SetEqual(/LASTMSG=%RESP%)
  1567.   SetEqual(/RESP=23) ; indicates correct execution of subroutine  
  1568.   Return
  1569. HSLINKCTL&
  1570. flushout
  1571. exec(adir.exe hstemp%NODE%\*.* >hslst.%NODE%)
  1572. inpclose
  1573. inpopen(hslst.%NODE%)
  1574.  
  1575.   setequal(t=0)
  1576.   linefeed(1)
  1577.   setequal(a=/:UPLOADS/)
  1578.   clearmem
  1579.   setequal(c=0)
  1580.  
  1581. *stcalc
  1582.   inpread
  1583.   setequal(d=%ARESP%)
  1584.   iseek(%var%d)
  1585.   iftrue(goto (nfile))
  1586.   if (&D)=() then goto (Nfile)
  1587.   fcopy(hstemp%NODE%\%var%d,files\uploads\%var%d)
  1588.   size(files\uploads\%var%d)
  1589.   addvar(%var%t+%ARESP%=t)
  1590.   cnvtk(%ARESP%)
  1591.   addvar(%ARESP%+/:KUP/=o)
  1592.   setequal(/KUP=%var%o)
  1593.   multvar(%var%c*3=y)
  1594.   say(&7&&CR&%var%d&CR&)
  1595.   say(&14&Please enter a description for your file.  &10&The description can take up 3 lines.&CR&&CR&&15&   (----2----3----4----5----6----7---8----))
  1596.   resetwrap
  1597.   clearmem
  1598.   wrapask (%MIN%1%%LEN%40%&3&1&12&: &15&*)
  1599.   setequal(^1=%RESP%)
  1600.   wrapask (%LEN%40%%CRON%&3&2&12&: &15&*)
  1601.   if (%RESP%)=(<CR>) then goto (nomore)
  1602.   setequal(^2=%RESP%)
  1603.   ask (%LEN%39%&3&3&12&: &15&*)
  1604.   setequal(^3=%RESP%)
  1605.   *nomore
  1606.   file(files\uploads\,%var%d,3)
  1607.   log(--,%var%d Uploaded (HSLINK).)
  1608.   appendto(logs\UPLOAD.%NODE%,%var%d uploaded at %TIME% on %DATE% by %NAME%.)
  1609.   inc(c)
  1610.   *nfile
  1611.   kill(hstemp%NODE%\%var%d)
  1612.   fendif(donecalc)
  1613.   goto (stcalc)
  1614.  
  1615. *donecalc
  1616.   inpclose
  1617.   inc(c)
  1618.   say(%BEEP%)
  1619.   multvar(%XMIN%*60=o)
  1620.   divvar(%var%t/%var%o=g)
  1621.   setequal(/UPLOADS=%var%a)
  1622. return
  1623. UEDIT3CTLα*StUEdit3
  1624.  
  1625. *ClearInfoBox
  1626.  AnsiGoto (2,15);
  1627.  Say (      *)
  1628.  AnsiGoto (30,15);
  1629.  Say (              *)
  1630.  AnsiGoto (2,16);
  1631.  Say (              *)
  1632.  AnsiGoto (30,16);
  1633.  Say (         *)
  1634.  AnsiGoto (2,17);
  1635.  Say (            *)
  1636.  AnsiGoto (30,17);
  1637.  Say (             *)
  1638.  AnsiGoto (2,18);
  1639.  Say (                *)
  1640.  AnsiGoto (30,18);
  1641.  Say (         *)
  1642.  AnsiGoto (30,19);
  1643.  Say (               *)
  1644.  AnsiGoto (30,20);
  1645.  Say (                  *)
  1646.  
  1647. AnsiGoto (20,17)
  1648. MenuAsk (&15&Enter Name to Search For: &2&*)
  1649. SetEqual (v=%RESP%)
  1650. AnsiGoto (20,17)
  1651. Say (&12&      Searching....                         *)
  1652. AnsiGoto (39,17)
  1653. SetEqual (y=%var%z)
  1654. ;Stores the number of the user record you are currently viewing in
  1655. ;%var%y so that the editor can go back to that user when you are done
  1656. ;searching.
  1657.  
  1658. *FindIt
  1659. SeekUser (%var%v)
  1660. ifnottrue(goto (notfound))
  1661. SetEqual (z=%NDNUMB%)
  1662. Loadmem(control\uedit.ctl,goto(clearinfo))
  1663.  
  1664. *NotFound
  1665.  AnsiGoto (20,17)
  1666.  Say (&12&%var%v could not be found in the userfile.*)
  1667.  SecPause (2) ;Pauses for 2 seconds
  1668.  AnsiGoto (20,17)
  1669.  Say (&12&                                                   *)
  1670.  SetEqual (z=%var%y)
  1671. ;Sets the current user record number to %var%y, what it was before the user
  1672. ;started searching.
  1673.  SetEqual (m=0)
  1674.  Loadmem (control\uedit.ctl,goto(clearinfo))
  1675. ;Loads into memory the control file CONTROL\UEDIT.CTL and goes to the label *clearinfo.
  1676.  
  1677. *Found
  1678.  SetEqual (m=1) ;DO ask if you want to continue searching.
  1679.  SetEqual (z=%var%z)
  1680.  Loadmem (control\uedit.ctl,goto(clearinfo))
  1681.  
  1682. *Another
  1683.  AnsiGoto (20,17)
  1684.  YesNoAsk(&15&Continue Search? *)
  1685.  If (%RESP%)=(Yes) then goto (FindIt)
  1686.  SetEqual (m=0)
  1687. Loadmem (control\uedit.ctl,goto(clearinfo));Do NOT ask if you want to continue searching.
  1688. ONCOMMCTL;Communications
  1689.  *SSdisp
  1690.    Display(ONHELP\COMMMENU)
  1691.  *SPrompt
  1692.    SetEqual(a=)
  1693.    Say(&15&Time Remaining: &14&%LEFT% &15&minutes.)
  1694.    MenuAsk(&3&Online Help Selection? &12&*)
  1695.  *SCheck
  1696.    BigIf (G:BYE,?:SSDISP,R:SDISP,Q:MAIN,1:GARBAGE,2:INIT,3:CONNECT,4:IRQ,5:DESQVIEW)
  1697.    Jump (bsel)
  1698.    Goto(SSDisp)
  1699.  
  1700. *GARBAGE
  1701.  Display(ONHELP\GARBAGE)
  1702.  Goto(SSDisp)
  1703.  
  1704. *CONNECT
  1705.  Display(ONHELP\CONNECT)
  1706.  Goto(SSDisp)
  1707.  
  1708. *INIT
  1709.  Display(ONHELP\INIT)
  1710.  Goto(SSDisp)
  1711.  
  1712. *IRQ
  1713.  Display(ONHELP\IRQ)
  1714.  Goto(SSDisp)
  1715.  
  1716. *DESQVIEW
  1717.  Display(ONHELP\DVCOMM)
  1718.  Goto(SSDisp)
  1719.  
  1720. *SDISP
  1721.  Return
  1722.  ;LoadMem(Control\ONHELP.CTL,Goto(SDisp))
  1723.  
  1724. *MAIN
  1725.  ;LoadMem(Control\MAIN.MNU)
  1726.  SetEqual(/RESP=QUITTING)
  1727.  Return
  1728.  
  1729. *bSel
  1730. LoadSub(control\macros\badsel.ctl) ;invalid selection
  1731. Goto (ssdisp)
  1732. ;Ret
  1733. AUTOOFFCTL▌flushout
  1734. Seek(%pbtemp%tagged.%NODE%)
  1735. IfTrue(say(&10&%beep%%beep%You have files tagged for download!))
  1736. say(&CR&&11&You have requested an auto-logoff.  This call will be terminated in 30 seconds.)
  1737. say(&14&Hit (CTRL-K) to abort or (H) to hang up now.*)
  1738. SetEqual(n=0)
  1739.  
  1740. *begin
  1741. do
  1742. jump(rkeytst)
  1743. secpause(1)
  1744. localkey(1)
  1745. ifnottrue(goto (psa))
  1746. If (%ARESP%)=(H) Then Goto (off)
  1747. if (%ARESP%)=(h) then goto (off)
  1748. If (%ARESP%)=( ) Then Goto (ex)
  1749. *psa
  1750. jump(rkeytst)
  1751. inc(n)
  1752. say(.*)
  1753. If (&n)=(30) Then Goto (off)
  1754. loop
  1755.  
  1756. *off
  1757. log(<<,Downloaded file, Auto-logoff)
  1758. Display(Display\goodbye)
  1759. quitbbs
  1760.         
  1761. *ex
  1762. selfarea(/:lastdown/)
  1763. say()
  1764. return
  1765.  
  1766. *rkeytst
  1767. ifkey(H)
  1768. iftrue(goto (off))
  1769. ifkey( )
  1770. iftrue(goto (ex))
  1771. ret
  1772. SELFILEACTL1*start
  1773. menuask(%CRON%&CR&&15&Please enter the area number to search &15&(L=List, ENTER=All)&12&: &14&*)
  1774. if (%resp%)=(<CR>) then return
  1775. if (%resp%)=(L) then goto (lista)
  1776. number(%resp%)
  1777. ifnottrue (return)
  1778. cmpvalo(%maxfarea%,%resp%)
  1779. iftrue(return)
  1780. selfarea(%resp%)
  1781. cmpval(%sec%,%filsec%)
  1782. iftrue(return)
  1783. setequal(g=%resp%)
  1784. setequal(f=%resp%)
  1785. return
  1786.  
  1787. *lista
  1788. NotIf (/:SEC/)=(100) then display(%FAREA%)
  1789. If (/:SEC/)=(100) then goto (sysv)
  1790. goto (start)
  1791.  
  1792. *sysv
  1793. seek(%FAREA%.100)
  1794. iftrue(view(%FAREA%.100))
  1795. ifnottrue(display(%FAREA%))
  1796. goto (start)
  1797. BADPASSCTL/Log (<<,User (%var%d) entered an invalid)
  1798. Log (<<,password 4 times.)
  1799. if (%BPComment%)=(No) then Goto(KickOff) ;BPComment is set via PBConfig
  1800. *badpass
  1801. ClearScr
  1802. Beep (2)
  1803. MenuSay(&CR&&12&You Have failed to enter the correct password multiple times!)
  1804. Say(&CR&&11&Enter One Line Reason Why You Failed to Enter the Correct Password:)
  1805. Say(&3&[&7&░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░&3&]&12&*)
  1806. Back(53)       
  1807. Ask (*%MIN%1%%LEN%52%)
  1808.  
  1809. Log(<<,%NAME%'s Reason:)
  1810. Log(<<, "%RESP%")
  1811.  
  1812. Zap(MSG.%NODE%,This message has been automatically generated for you by Powerboard.)
  1813. AppendTo(MSG.%NODE%,)
  1814. AppendTo(MSG.%NODE%,%NAME% attempted to logon to the BBS at %TIME% on %DATE%, but)
  1815. AppendTo(MSG.%NODE%,failed to enter the correct password multiple times. The user offered)
  1816. AppendTo(MSG.%NODE%,the following explanation for this password failure:)
  1817. AppendTo(MSG.%NODE%,)
  1818. AppendTo(MSG.%NODE%,%RESP%)
  1819. AppendTo(MSG.%NODE%,)
  1820.  
  1821. SeekUser(%SYSOP%)
  1822. If(%ARESP%)=(No) then SetNv(tousernum=1)
  1823. SetNv(tousernum=%NDNUMB%)
  1824. ;if the sysop cannot be located in user file, assume sysop is user #1
  1825.  
  1826. InitTxt
  1827. Lines(MSG.%NODE%)
  1828. Import(MSG.%NODE%,,1,%ARESP%)
  1829.  
  1830. selarea(1)
  1831. Writemsg(1,%SYSOP%,Powerboard BBS,Password Failure,%nv%tousernum%,Yes,0,No,,)
  1832. Kill(MSG.%NODE%)
  1833.  
  1834. *KickOff
  1835. Log(<<,User disconnected by BBS.)
  1836. quitbbs
  1837.  
  1838.  
  1839. NO1CTL╓clearscr
  1840. say(Non-Subscribing members are not accepted on this node at this time.)
  1841. say(Please call our node 2 at 914-833-1479.  Thank you.&CR&)
  1842. log(--,Non-Subscriber Tried Logon to Node 1)
  1843. secpause(3)
  1844. quitbbs
  1845. LOCKOUTCTLûLog (--,Locked out user (%var%d) attempted)  ;log info to callers log
  1846. Log (--,to log onto the BBS.)
  1847. Display(display\LOCKOUT)
  1848. secpause(3)
  1849. QuitBBS
  1850. DPHONECTLôlog(!!,User attempted logon with active)
  1851. log(!!,user's phone number (/:phone/))
  1852. appendto(badnames.bbs,%NAME%)
  1853. display(display\dphone)
  1854. quitbbs
  1855. HSDN   º*donecalc
  1856.   inpclose
  1857.   inc(c)
  1858.   say(%BEEP%)
  1859.   multvar(%XMIN%*60=o)
  1860.   divvar(%var%t/%var%o=g)
  1861.   addvar(/:uploads/+%var%c=a)
  1862.   setequal(/UPLOADS=%var%a)
  1863. return
  1864. BATCHCTL╧!Kill(%pbtemp%Free.%NODE%,%pbtemp%batch.%node%)
  1865.  
  1866.         *startbatch
  1867. setnv(q2=0)
  1868. setnv(r2=0)
  1869. setequal(e=0)
  1870. SetEqual(m=0)
  1871. SETEQUAL(Q=0)
  1872. SetEqual(w=0)
  1873. setequal(d=)
  1874.  
  1875.         *fname
  1876. inc(e)
  1877. setequal(r=%nv%r2%)
  1878. INC(R)
  1879. setnv(r2=%var%r)
  1880. setequal(q=%nv%q2%)
  1881. NOTIF (%VAR%Q)=(0) THEN GOTO (WN)
  1882. *gfm
  1883. Say(&10&Pressing (&11&ENTER&10&) will allow you to start the download.)
  1884. if (%nv%filename%)<>() then
  1885.   setwrap(%nv%filename%)
  1886.   setnv(filename=)
  1887.   endif
  1888. order(%var%e)
  1889. Say(&3&Please enter name of the %var%e%aresp% file to download&12&: &14&(            )&15&*)
  1890. Back(13)
  1891. setnv(noask=)
  1892. MenuAsk(%NOCR%%CRON%%LEN%12%*)
  1893. if (%RESP%)=(<CR>) then Say ()
  1894. If (%RESP%)=(<CR>) Then Goto (entpressed)
  1895. len(%Resp%)
  1896. Back(%ARESP%)
  1897. AddDef(.%DEFEXT%)
  1898. say (%Resp%)
  1899. if (%Resp%)=(%var%d) then goto (ah)
  1900. FIND (%RESP%,?)
  1901. NOTIF (%ARESP%)=(0) THEN GOTO (IW)
  1902. FIND (%RESP%,*)
  1903. NOTIF (%ARESP%)=(0) THEN GOTO (IW)
  1904. seekfile(passfile.lst,%RESP%)
  1905. iftrue(jump(pf))
  1906. find(%resp%,**)
  1907. iftrue(setnv(noask=Y))
  1908. iftrue(goto(entpressed))
  1909. Say(&CR&&11&Please wait!... We're searching for the file...*)
  1910. *SF
  1911. SeekFall(%RESP%)
  1912. If (%ARESP%)=(INVALID) Then Goto (invfn)   ;If invalid filename...
  1913. If (%ARESP%)=(No) Then Goto (nothere)     ;If it doesn't exist..
  1914. If (%ARESP%)=(NOT ENOUGH) Then Goto (notenuf)  ;If not enuf security
  1915. If (%RATIO%)=(NOT OK) Then Goto (badratio)   ;If ratio is bad...
  1916. if (/:dailydl/)=(%dailyL%) then goto (badratio)
  1917. selFarea(%ARESP%)               ;select the area it's in...
  1918. enufsec(%filsec%)
  1919. ifnottrue(goto(notenuf))
  1920. Size(%FILPATH%%RESP%)
  1921. setequal(j=%aresp%)
  1922. setequal(q=%nv%q2%)
  1923. IF (%var%Q)=(0) THEN Say(Found!)
  1924. IF (&R)=(&Q) THEN
  1925.   SETEQUAL(Q=0)
  1926.   setnv(q2=0)
  1927.   endif
  1928. ;addvar(%var%e+1=g)
  1929. Say(&CR&&14& ───────  &12&Statistics for %RESP% (File #%var%e)&14& ───────&15&)
  1930. Say(Free Download: &11&%FREE% &15&*)
  1931. If (%FREE%)=(No) Then Say( *)
  1932. Say(&F&8&Size: &11&%ARESP% &15&) ;ARESP is from up there where we checked fileSize
  1933. fDate(%FILPATH%%RESP%)  ;get date stamp from file
  1934. Say(Dated: &11&%ARESP% &15&&F&9&Transfer Time: *)
  1935. tTime(%var%J)
  1936. Say(&11&%ARESP%&CR&)
  1937. setequal(g=%ttim%)
  1938. if (%FREE%)=(Yes) then setequal(g=0)
  1939. AddVar(%var%m+%var%g=m)  ;add to total # of minutes it'll take to d/l
  1940. if (%var%M)>(/:left/) then goto (notenuf2)
  1941. SetEqual(d=%RESP%)
  1942.  
  1943. If (%CD%)=(Yes) then
  1944.   Say(&CR&&12&Copying File from CD-ROM Drive...*)
  1945.   FCopy(%FILPATH%%VAR%D,%PBTEMP%%VAR%D) ; copy file from CD to hard drive
  1946.   If(%ARESP%)=(ERROR) Then Goto(CopyError)
  1947.   SetNv(path=%PBTEMP%)
  1948.   Say(Done!)
  1949.  endif
  1950. If(%CD%)<>(Yes) then SetNv(path=%FILPATH%)
  1951. AppendTo(%pbtemp%free.%NODE%,%FREE%)    ;append to our free temporary file...
  1952. IfTrue( AddVar(%var%m+-%TTIM%=m)) ;don't count If freefile...
  1953. AppendTo(%pbtemp%batch.%NODE%,%NV%PATH%%var%d)   ;append to list of files in batch
  1954. inc(w)
  1955. Goto (fname)    ;go Back and see If they want to d/l another file...
  1956.  
  1957. *notenuf2
  1958.    addvar(%var%m+-%var%g=m)
  1959.    Display(Display\NODLTIME)
  1960. goto(gf)
  1961.         
  1962.         *initxfer
  1963. CmpVal(%var%m,/:LEFT/)  ;see If they have enough time
  1964. IfNotTrue( Goto (notenuftime))
  1965. addvar(/:downloads/+%var%w=m)
  1966. if (%uratio%)=(0) then goto (stdown)
  1967. notif (/:uploads/)=(0) then goto (haveuploaded)
  1968. cmpval(%uratio%,%var%m)
  1969. iftrue(goto(badratio))
  1970. goto(stdown)
  1971. *HaveUploaded
  1972. addvar(%var%m+-1=m)
  1973. multvar(/:uploads/*%uratio%=e)
  1974. addvar(%var%m+-%var%e=m)
  1975. if (%var%m)=(1) then goto (stdown)
  1976. cmpval(%var%m,1)
  1977. iftrue(goto(stdown))
  1978. goto (badratio)
  1979. *stDown
  1980. setequal(m=No)
  1981. if (%nv%noask%)=(Y) then goto (skipask)
  1982. say(&CR&&15&     Would you like to download these files? (&12&Y&15&/&12&N&15&)&14&*)
  1983. back(4)
  1984. yesnoask(*)
  1985. If (%RESP%)=(No) Then Goto (ex)
  1986. say(&15&Would you like us to log you off afterwards? (&12&Y&15&/&12&N&15&)&14&*)
  1987. back(4)
  1988. yesnoask(*)
  1989. SetEqual(m=%RESP%)
  1990. *skipask
  1991. Say(&CR&&11&We're sending the files you requested. Please get ready to receive them now.)
  1992. FixFile(protocol\%var%b-d.bt,%pbtemp%%var%b-d.bat) ;filter percent codes
  1993. InitClock  ;init transfer time clock...
  1994. setequal(n=%var%b)
  1995. Exec(%pbtemp%%var%b-d.BAT│)     ;run the protocol
  1996. Kill(%pbtemp%%var%b-d.bat)      ;get rid of temporary prot batch file
  1997. If(%CD%)=(Yes) then Kill(%PBTEMP%%VAR%D) ; kill file copied from CD to hd drive
  1998.  
  1999.         *success
  2000. setequal(l=0)
  2001. setequal(i=/:left/)
  2002. TogLocal    ;go into local mode..just in case they hang up.
  2003. NotIf (%ARESP%)=(0) Then Goto (aborted)  ;If errorlevel Goto aborted
  2004. setequal(/left=10)
  2005. XferTime        ;calc time it took for d/l
  2006. SetEqual(e=%ARESP%)
  2007. InpOpen(%pbtemp%batch.%NODE%)   ;start reading our batch temp file
  2008. If (%ARESP%)=(ERROR) Then Goto (dsucc)   ;If we cant read it...
  2009. SetEqual(t=0)
  2010. linefeed(1)
  2011. SetEqual(a=/:DOWNLOADS/)    ;set a to current # of d/l's
  2012. Kill(%pbtemp%tagged.%NODE%)             ;get rid of tag file
  2013. kill(%pbtemp%tagged2.%node%)
  2014. setequal(/nvtotaltime=0)
  2015. SetEqual(c=0)
  2016.         
  2017.         *stcalc
  2018. inc(c)
  2019. InpRead
  2020. SetEqual(d=%ARESP%)
  2021. Size(%var%d)
  2022. AddVar(%var%t+%ARESP%=t)
  2023. log(--,%var%d Downloaded via Batch)
  2024. log(--,  Protocol: '%nv%protocol%'.)
  2025. AppendTo(logs\DOWNLOAD.%NODE%,%var%d downloaded by %NAME% at %TIME% on %DATE%.)
  2026. setequal(b=/:dailydl/)
  2027. InpLine(%pbtemp%free.%NODE%,%var%c)
  2028. NotIf(%ARESP%)=(Yes) Then inc(a)
  2029. notif(%aresp%)=(Yes) then inc(b)
  2030. setequal(/dailydl=%var%b)
  2031. if (%aresp%)=(Yes) then goto (fre)
  2032. fEndIf(donecalc)
  2033. Goto (stcalc)
  2034.  
  2035. *fre
  2036. addvar(%var%c+-1=c)
  2037. Size(%var%d)
  2038. tTime(%ARESP%)
  2039. addvar(%var%l+%ttim%=l)
  2040. fEndIf(donecalc)
  2041. Goto (stcalc)
  2042.  
  2043.         *donecalc
  2044. InpClose
  2045. Say(%BEEP%)
  2046. setequal(o=%xtime%)
  2047. DivVar(%var%t/%var%o=g)
  2048. CnvtK(%var%t)
  2049. AddVar(%ARESP%+/:KDOWN/=o)
  2050. SetEqual(/KDOWN=%var%o)
  2051. addvar(/:downloads/+%var%c=a)
  2052. SetEqual(/DOWNLOADS=%var%a)
  2053. addvar(%var%i+%var%l=i)
  2054. Log(--,Rate: %var%g CPS)
  2055.         
  2056.         *dsucc
  2057. setequal(/left=%var%i)
  2058. TogLocal  ;go Back to remote, non-local, mode
  2059. Display (Display\SUCCESSB)   ;show success screen
  2060. if (%VAR%b)=(HS) then loadmem(control\hslink.ctl)
  2061. If (&m)=(Yes) Then Goto (autooff)
  2062.         
  2063.         *ex
  2064. Kill(%pbtemp%free.%NODE%)
  2065. SelFarea(/:LASTDOWN/)   ;set d/l area Back to their default d/l area
  2066. linefeed(1)
  2067. goto (ret0)
  2068.         
  2069.         *CopyError
  2070. Log(!!,File "%VAR%D" unable to be copied from "%FILPATH%" to "%PBTEMP%")
  2071. Beep(1)
  2072. Say(&CR&&14&ERROR: The selected file could not be copied from the CD-ROM Drive!)
  2073. Say(       Please notify the Sysop immediately!)
  2074. Say(&CR&&12&Aborting transfer of currently selected file...)
  2075. SecPause(2)
  2076. Goto(gf)   ; get other files
  2077.  
  2078.         *aborted
  2079. TogLocal
  2080. Log(--,Batch Download aborted.)
  2081.         
  2082.         *lcl
  2083. Display (Display\ABORTED)
  2084. Goto (ex)
  2085.         
  2086.         *badratio
  2087. Display(Display\BADRATIO)
  2088. SelFarea(/:LASTDOWN/)
  2089. linefeed(1)
  2090. goto (ret0)
  2091.         
  2092.         *autooff
  2093. loadmem(control\autoOff.ctl)
  2094.         
  2095.         *free
  2096. Log(--,Freefile downloaded, time refunded.)
  2097. AddVar(%XMIN%+%LEFT%=t)
  2098. SetEqual(/LEFT=t)
  2099. If (&m)=(Yes) Then Goto (autooff)
  2100. Goto (ex)
  2101.         
  2102.         *Notenuf
  2103. Display (Display\fbadsec)
  2104. Goto (gf)
  2105.         
  2106.         *nothere
  2107. Display(Display\notfnd)
  2108. Goto (gf)
  2109.         
  2110.         *invfn
  2111. Display(Display\INVALID)
  2112. FlushOut
  2113. SelFarea(/:LASTDOWN/)
  2114. Enter
  2115. Goto (gf)
  2116.         
  2117.         *gf
  2118. setequal(r=%nv%r2%)
  2119. addvar(%var%r+-1=r)
  2120. setnv(r2=%var%r)
  2121. addvar(%var%e+-1=e)
  2122. goto(fname)
  2123.  
  2124.         *entpressed
  2125. linefeed(1)
  2126. If (&w)=(0) Then goto (ret0)
  2127. Goto (initxfer)
  2128.         
  2129.         *notenuftime
  2130. Display(Display\NODLTIME)
  2131. goto (ret0)
  2132.  
  2133. *ah
  2134. Say(&CR&&12&That file is already in the download batch!&CR&)
  2135. goto (gf)
  2136. *IW
  2137. ZAP(%pbtemp%WS.%NODE%)
  2138. SAY()
  2139. loadEXEC(WS.EXE,/F:%FAREA%.BBS /O:%pbtemp%WS.%NODE% /S:%SEC% /T:%RESP%)
  2140. lines(%pbtemp%ws.%node%)
  2141. IF (%ARESP%)=(0) THEN GOTO (NOTHERE)
  2142. SETEQUAL(Q=%ARESP%)
  2143. setnv(q2=%aresp%)
  2144. SETEQUAL(R=1)
  2145. if (%var%e)<(1) then setequal(e=1)
  2146. setnv(r2=1)
  2147. setnv(pctr=1)
  2148. *WN
  2149. setequal(r=%nv%pctr%)
  2150. addvar(%var%r+5=r)
  2151. setnv(pctr=%var%r)
  2152. if (%var%r)=>(/:screenlen/) then
  2153.   pauseprompt
  2154.   if (%aresp%)=(STOP) then
  2155.     setequal(q=0)
  2156.     addvar(%var%e+-1=e)
  2157.     setnv(q2=0)
  2158.     goto (fname)
  2159.     endif
  2160.   setnv(pctr=1)
  2161.   endif
  2162. setequal(r=%nv%r2%)
  2163. INPLINE(%pbtemp%WS.%NODE%,%VAR%R)
  2164. SETEQUAL(/RESP=%ARESP%)
  2165. GOTO (SF)
  2166.  
  2167. *pf
  2168. inpopen(passfile.lst)
  2169. setequal(c=%RESP%,)
  2170. len(%VAR%C)
  2171. setequal(d=%ARESP%)
  2172. do
  2173. inpread
  2174. setequal(e=%ARESP%)
  2175. get(&e,1,%VAR%D)
  2176. if (%ARESP%)=(&C) then goto (ip)
  2177. eofloop
  2178. inpclose
  2179. ret
  2180. *ip
  2181. inpclose
  2182. say(&3&What is the password for this file?&12&: &15&*)
  2183. cgetpass(o)
  2184. say()
  2185. get(&e,%VAR%D,100)
  2186. setequal(a=,%RESP%)
  2187. setequal(f=%aresp%)
  2188. addvar(%var%d+-1=d)
  2189. get(&c,1,%var%d)
  2190. setequal(/resp=%aresp%)
  2191. if (&a)=(&f) then ret
  2192. goto (gfm)
  2193.  
  2194. *ret0
  2195. setnv(protocol=)
  2196. if (%nv%wipe%)=() then return
  2197. setnv(wipe=)
  2198. setnv(wipmode=1)
  2199. return
  2200. ONDOORSCTLε;Door Problems and Questions
  2201.  *SSdisp
  2202.    Display(ONHELP\ONDOORS)
  2203.  *SPrompt
  2204.    SetEqual(a=)
  2205.    Say(&15&Time Remaining: &14&%LEFT% &15&minutes.)
  2206.    MenuAsk(&3&Online Help Selection? &12&*)
  2207.  *SCheck
  2208.    BigIf (G:BYE,?:SSDISP,R:SDISP,Q:MAIN,1:SETUP,2:OUTOFMEM,3:OS2DOOR,4:GENPROBS)
  2209.    Jump (bsel)
  2210.    Goto(SSDisp)
  2211.  
  2212. *SETUP
  2213.  Display(ONHELP\DOORHLP)
  2214.  Goto(SSDisp)
  2215.  
  2216. *OUTOFMEM
  2217.  Display(ONHELP\DOORS)
  2218.  Goto(SSDisp)
  2219.  
  2220. *OS2DOOR
  2221.  Display(ONHELP\OS2DOOR)
  2222.  Goto(SSDisp)
  2223.  
  2224. *GENPROBS
  2225.  Display(ONHELP\DOORS2)
  2226.  Goto(SSDisp)
  2227.  
  2228. *SDISP
  2229.  Return
  2230.  ;LoadMem(Control\ONHELP.CTL,Goto(SDisp))
  2231.  
  2232. *MAIN
  2233.  ;LoadMem(Control\MAIN.MNU)
  2234.  SetEqual(/RESP=QUITTING)
  2235.  Return
  2236.  
  2237. *bSel
  2238. LoadSub(control\macros\badsel.ctl) ;invalid selection
  2239. Goto (ssdisp)
  2240. ;Ret
  2241. ONDOWNCTL▒ ;ondown.ctl - called for downloading files in online help.
  2242. ;REQUIRES: filename to download be stored in %VAR%R variable prior to calling
  2243. ;          this subroutine
  2244. ;
  2245.         *down
  2246. setequal(/nvfarea=%farea%)     ;store current conference data file in memory
  2247.  
  2248. SetActivity(Downloading Files)
  2249.  
  2250. Kill(Batch.%NODE%)
  2251. if (%local%)=(TRUE) then setequal(b=1) ;if local, don't let user use batch
  2252. if (%LOCAL%)=(TRUE) then goto (Pok)    ;local users cant use protocols
  2253. If (/:PROTOCOL/)=(N) Then Goto (PickProt) ;if they don't have a default
  2254.                                         ;protocol selected, make them Pick
  2255. Display(Display\defuse)                 ;defuse.asc/ans: "using default prot"
  2256. SetEqual(b=/:PROTOCOL/)                 ;set to protocol defualt selection
  2257. Goto (pseled)                           ;bypass selection procedure
  2258.  
  2259.         *PickProt
  2260. Display (Display\DN-PROTS)
  2261. MenuAsk (&3&Which transfer protocol would you like to use?&11&(or Q to Quit)&12&: &15&*)
  2262. Find(%RESP%,\)      ;make sure they didnt stick a backslash in there
  2263. NotIf (%ARESP%)=(0) Then Goto (badprot)
  2264. BigIf(h:phelp,q:filesback)
  2265. SetEqual(b=%RESP%)
  2266.         
  2267.         *pseled
  2268. Seek(protocol\%var%b-D.BT)    ;check to see If protocol exists..
  2269. IfTrue(Goto (Pok))
  2270.  
  2271.         *badprot
  2272. loadsub(control\macros\badsel.ctl)
  2273. Goto (PickProt)  ;go back and ask again..
  2274.         
  2275.         *Pok
  2276. ;Seek(tagged.%NODE%)   ;see If there are any tagged files..
  2277. ;IfTrue(Goto (texist))
  2278. ;linefeed(1)
  2279. ;len(%var%b)   ;see If they picked a batch protocol
  2280. ;NotIf(%ARESP%)=(1) Then loadmem(control\BATCH.CTL)
  2281.         
  2282.         *fname
  2283. ;say(&3&Please enter the name of the file to download&12&: &14&(&F&12)&15&*)
  2284. ;back(13)
  2285. ;menuask(%NOCR%%CRON%%LEN12%*)
  2286.   ;if (%RESP%)=(<CR>) then say()
  2287.   ;if (%RESP%)=(<CR>) then Return
  2288.   ;len(%Resp%)
  2289.   ;back(%Aresp%)
  2290. ;adddef(.%DEFEXT%)  
  2291.  ; say(%Resp%&11&&CR&)
  2292.  
  2293. ;setequal(r=%resp%)
  2294. seek(passfile.%node%)
  2295. ifnottrue(goto(nopass))
  2296. inpopen(passfile.%node%)
  2297. setequal(a=%resp%,)
  2298. len(%var%a)
  2299. setequal(c=%aresp%)
  2300. do
  2301. inpread ;read line from passfile.node
  2302. setequal(d=%aresp%)
  2303. get(&d,1,%var%c)
  2304. if (%aresp%)=(%var%a) then goto (el)    ;if match found in passfile.node
  2305. fendif(nopass)
  2306. loop
  2307. *el
  2308. inc(c)
  2309. get(&d,%var%c,100)
  2310. setequal(a=%aresp%)
  2311. say(&3&Please enter the password for this file&12&: &15&*)
  2312. cgetpass(.) ;get the password in capital letters, echoing dots
  2313. say()
  2314. if (%resp%)=(%var%a) then goto (nopass) ;if password correct, let them through
  2315. inpclose ;close passfile.node
  2316. goto(fname) ;password wasn't correct... don't let them get this file
  2317. *nopass
  2318. setequal(/resp=%var%r) ;restore contents of RESP variable
  2319. inpclose ;close passfile.node
  2320.  
  2321. say(Please wait!... We're searching for the file...*)
  2322. Seekfall(%RESP%)
  2323. If (%ARESP%)=(INVALID) Then Goto (invfn)  ;If invalid filename
  2324. if (%aresp%)=(No) then jump(ConfScan)
  2325. If (%ARESP%)=(No) Then Goto (nothere)
  2326. If (%ARESP%)=(NOT ENOUGH) Then Goto (notenuf)
  2327. If (%RATIO%)=(NOT OK) Then Goto (badratio)  ;If bad ratio...
  2328. selFarea(%ARESP%)    ;set file area to where the file is...
  2329. size(%FILPATH%%RESP%)
  2330. say(Found!&CR&&CR&&14& ───────  &12&Statistics for %RESP% &14& ───────&15&)
  2331. say(Free Download: &11&%FREE% &15&*)
  2332. If (%FREE%)=(No) Then say( *)
  2333. say(        Size: &11&%ARESP% &15&&CR&Dated: *)
  2334. fdate(%FILPATH%%RESP%)   ;get file date
  2335. say(&11&%ARESP% &15&         Transfer Time: *)
  2336. size(%FILPATH%%RESP%)        ;get size of the file
  2337. ttime(%ARESP%) ;get transfer time
  2338. say(&11&%ARESP%)
  2339. cmpval(%TTIM%,/:LEFT/) ;sufficient time left?
  2340. If (%ARESP%)=(No) Then If (%FREE%)=(No) Then Goto (notenuftime)
  2341. SetEqual(d=%RESP%)
  2342. say(&CR&&3&       Would you like to download this file? &9&[Y/n]&14&*)
  2343. back(4)
  2344. yesnoask(*)
  2345. If (%RESP%)=(No) Then Goto (ex)
  2346. say(&3&Would you like us to log you off afterwards? &9&[Y/n]&14&*)
  2347. back(4)
  2348. yesnoask(*)
  2349. SetEqual(m=%RESP%)
  2350. say(&CR&&11&We're sending the file you requested. Please get ready to receive it now.)
  2351. If (%LOCAL%)=(TRUE) Then Goto (lcl)
  2352. fixfile(protocol\%var%b-d.bt,protocol\%var%b-d.bat) ;filter percent codes
  2353. initclock
  2354. exec(protocol\%var%b-d.BAT│)
  2355. Kill(protocol\%var%b-d.bat)
  2356.  
  2357.         *success
  2358. setequal(t=)
  2359. NotIf (%ARESP%)=(0) Then Goto (aborted)
  2360. notif (%LOCAL%)=(FALSE) then setequal(t=TOG)
  2361. if (%LOCAL%)=(FALSE) then toglocal
  2362. xfertime                        ;how long did it take?
  2363. SetEqual(e=%ARESP%)
  2364. multvar(%XMIN%*60=o)
  2365. size(%FILPATH%%var%d)       ;get size of file
  2366. divvar(%ARESP%/%var%o=g)    ;divide by # of seconds the transfer took
  2367.                             ;to get CPS (chars per second)
  2368. cnvtk(%ARESP%)                  ;convert value to K bytes
  2369. addvar(%ARESP%+/:KDOWN/=o)
  2370. SetEqual(/KDOWN=%var%o)
  2371. say(%BEEP%*)
  2372. log(--,%var%d Downloaded.)
  2373. log(--,Rate: %var%g CPS)
  2374. appendto(logs\DOWNLOAD.%NODE%,%var%d downloaded by %NAME% at %TIME% on %DATE%.)
  2375. SetEqual(a=/:DOWNLOADS/)
  2376. inc(a)
  2377. SetEqual(/DOWNLOADS=%var%a)
  2378. notif (%var%t)=(TOG) then toglocal
  2379. eline(20)                        ;erase current line on screen, which is
  2380.                                  ;usually garbage from the protocol
  2381. Display (Display\SUCCESS)
  2382. If (%FREE%)=(Yes) Then Goto (free)
  2383. If (&m)=(Yes) Then Goto (autooff)
  2384.         
  2385.         *ex
  2386. selarea(/:lastmsg/)
  2387. listfile(%nv%farea%)
  2388. selfarea(/:LASTDOWN/)
  2389. linefeed(1)
  2390. return
  2391.         
  2392.         *aborted
  2393. eline(20)
  2394. log(--,Download of %var%d aborted.)
  2395. display(display\aborted)
  2396. goto (ex)
  2397.  
  2398.         *lcl
  2399. menuask(&CR&&3&Please specify the path &11&(e.g. C:\DLS\)&3& for this file&12&: &15&*)
  2400. setequal(k=10)
  2401. initclock
  2402. fcopy (%FILPATH%%var%d,%RESP%\%var%d)
  2403. notif (%ARESP%)=(0) then goto (aborted)
  2404. goto (success)
  2405.         
  2406.         *badratio
  2407. Display(Display\BADRATIO)
  2408. goto(ex)
  2409.  
  2410.         *autooff
  2411. loadmem(control\AutoOff.ctl)
  2412.  
  2413.         *free
  2414. log(--,Freefile downloaded, time refunded.)
  2415. size(%var%d)
  2416. ttime(%ARESP%)
  2417. addvar(%TTIM%+/:LEFT/=t)
  2418. SetEqual(/LEFT=%var%t)
  2419. If (&m)=(Yes) Then Goto (autooff)
  2420. Goto (ex)
  2421.         
  2422.         *texist
  2423. len(%var%b)
  2424. If (%ARESP%)=(1) Then Goto (len1)
  2425. say(&CR&&14&Files Currently Tagged:&CR&)
  2426. ;lview(tagged.%NODE%,10,7)
  2427. inpopen(tagged.%node%)
  2428.  
  2429. setequal(d=0)
  2430. setequal(m=0)
  2431. setequal(e=0)
  2432. setequal(f=0)
  2433.  
  2434. do
  2435.   inc(d)
  2436.   inpread
  2437.   setequal(w=%aresp%)
  2438.   cmpval(9,%var%d)
  2439.   say(&10&*)
  2440.   ifnottrue(say(0*))
  2441.   say(%var%d: &7&%var%w*)
  2442.   len(%var%w)
  2443.   addvar(12+-%aresp%=a)
  2444.   get(            ,1,%var%a)
  2445.   say(%aresp%*)
  2446.   inpline(tagged2.%node%,%var%d)
  2447.   setequal(w=%aresp%)
  2448.   size(%var%w)
  2449.   addvar(%var%e+%aresp%=e)
  2450.   setequal(c=%aresp%)
  2451.   say( %aresp%*)
  2452.   len(%aresp%)
  2453.   addvar(7+-%aresp%=a)
  2454.   get(         ,1,%var%a)
  2455.   say(%aresp% bytes, *)
  2456.   ttime(%var%c)
  2457.   say(%aresp% Download Time)
  2458.   inpLine(free.%node%,%var%d)
  2459.   addvar(%var%f+%ttim%=f)
  2460.   ifnottrue(addvar(%var%m+%ttim%=m))
  2461. eofloop
  2462.  
  2463. inpclose
  2464.  
  2465. cnvtk(%var%e)
  2466. say(&CR&&3&    TOTAL   %aresp% kbytes  %var%f minutes)
  2467.  
  2468. say(&CR&&3&Would you like to download the tagged files? &9&[Y/n]&14&*)
  2469. back(4)
  2470. yesnoask(*)
  2471. say(&14&)
  2472. If (%RESP%)=(No) Then loadmem(control\BATCH.CTL,Goto (startbatch))
  2473. say(Adding Tagged files to Batch...*)
  2474. fcopy(tagged2.%NODE%,batch.%NODE%)
  2475. lines(batch.%NODE%)   ;how many lines are in the file?
  2476. SetEqual(w=%ARESP%) ;w=# files in batch
  2477. say(Done!&CR&)
  2478. loadmem(control\BATCH.CTL,Goto (fname))
  2479.         *len1
  2480. say(&10&&CR&You have tagged files but they can only be downloaded with a BATCH)
  2481. say(protocol.  Please press &11&Enter&10& now to abort then choose a different protocol)
  2482. say(if you'd like to download your tagged files.&CR&)
  2483. Goto (fname)
  2484.         *notenuftime
  2485. Display(Display\NODLTIME)
  2486. return
  2487.         *phelp
  2488. Display(Display\help\prot,/:SEC/)
  2489. Goto (PickProt)
  2490.         *invfn
  2491. Display(Display\INVALID)
  2492. flushout
  2493. listfile(%nv%farea%)
  2494. selfarea(/:LASTDOWN/)
  2495. Enter
  2496. goto (fname)
  2497.         *filesback
  2498. return
  2499.         *notenuf
  2500. Display (Display\fbadsec)
  2501. selarea(/:lastmsg/)
  2502. listfile(%nv%farea%)
  2503. selfarea(/:LASTDOWN/)
  2504. return        
  2505.         *NotHere
  2506. Display(Display\notfnd)
  2507. SecPause(3)
  2508. return
  2509. ; return if file not existing
  2510. ;goto (fname)
  2511.         *moveerr
  2512. say(&CR&&14&The directory you specify is where the file already resides!&CR&)
  2513. goto (endmove)
  2514.  
  2515. *ConfScan
  2516. setequal(g=1) ;scan other conferences for the file
  2517. do
  2518. setequal(d=%farea%)
  2519. listfile(areas\farea%var%g)
  2520. if (%var%d)=(%farea%) then goto (lp)
  2521. say(.*)
  2522. seekfall(%resp%)
  2523. notif (%aresp%)=(No) then ret
  2524. *lp
  2525. inc(g)
  2526. if (%var%g)>(%maxarea%) then ret
  2527. loop
  2528.  
  2529. ONHELPCT «;Online Help Database
  2530. ;Programmed for Powerboard World Support BBS
  2531. ;Programmed by Doug Vermes, 12/29/93
  2532.  
  2533. *Disp
  2534. SetActivity (Main Menu)
  2535. ;if(/:EXPERT/)=(Y) then linefeed(1)
  2536. ;if(/:EXPERT/)=(Y) then Goto (Prompt)
  2537. *sdisp
  2538. Display (onhelp\onhelp2)
  2539.  
  2540. *Prompt
  2541. SetEqual(a=)
  2542. Say(&15&Time Remaining: &14&%LEFT% &15&minutes.)
  2543. MenuAsk(&3&Online Help Selection or Keyword to Search For? &12&*)
  2544. *Check
  2545. BigIf (G:BYE,?:SDISP,Q:MAIN,1:REG,2:PERFORM,3:MULTI,4:PBC,5:ZC,6:COMM,7:DISPHLP,8:CDROM,9:LOGON,10:PM)
  2546. BigIf (11:EVENT,12:FILES,13:MEM,14:HARDWARE,15:SOFTWARE,16:MSGAREA,17:PHONENUMS,18:SYSREQS,19:TECHSPECS,20:DLUPDATES)
  2547. BigIf (21:PBLOAD)
  2548. Goto(Keyword)
  2549. Jump (bsel)
  2550. Goto(Disp)
  2551.  
  2552. *KeyWord
  2553.  SetEqual(c=1)
  2554.  ;%VAR%C will be a counter var
  2555.  SetEqual(d=1)
  2556.  ;%VAR%D will be a clone var used for screen pausing
  2557.  MenuEqual(q=%RESP%)
  2558.  ;%VAR%Q stores Keyword Being Searched For
  2559.  Seek(onhelp\list.txt)
  2560.  IfNotTrue(Goto(Disp))
  2561.  ClearScr
  2562.  Say(&CR&&14&Keyword Search for: &12&%VAR%Q)
  2563.  Say(&CR&&11&#  &12&HELP SECTION)
  2564.  Say(&7&-------------------------------------------------------------------------)
  2565.  InpOpen(Onhelp\list.txt)
  2566.  Say(&15&\*)
  2567.  Do
  2568.   Back(1)
  2569.   Say(&15&\*)
  2570.   InpRead
  2571.   Back(1)
  2572.   Say(|*)
  2573.   SetEqual(r=%ARESP%)
  2574.   Back(1)
  2575.   Say(/*)
  2576.   ;%VAR%R stores filename temporarily
  2577.   SeekFile(ONHELP\%VAR%R,%VAR%Q)
  2578.   Back(1)
  2579.   Say(-*)
  2580.   IfTrue(Jump(SetAndInc))
  2581.  EofLoop  
  2582.  *FinishUp
  2583.  InpClose
  2584.  Back(1)
  2585. *GetPrompt 
  2586.  MenuAsk(&3&Help Section to View (Q to Quit): &14&*)
  2587.  If(%RESP%)=(Q) then Goto(Main)
  2588.  Number(%RESP%)
  2589.  IfNotTrue(goto(GetPrompt))
  2590.  CmpVal(%RESP%,%VAR%C)
  2591.  IfNotTrue(Goto(InvSection))
  2592.  Display(ONHELP\^:%RESP%^)
  2593. Goto(Disp)
  2594.   *SetAndInc
  2595.   SetEqual(^%VAR%C=%VAR%R)
  2596.   Back(1)
  2597.   ;Say(&3&%VAR%C: &12&%VAR%R*)
  2598.   Say(&3&%VAR%C: &12&*)
  2599.   SetEqual(/NDX=ONHELP\ONHELP.NDX)
  2600.   SeekUser(%VAR%R)
  2601.   IfTrue(Say(%NDFROM%))
  2602.   IfNotTrue(Say(%VAR%R))
  2603.   Inc(c)
  2604.   Inc(d)
  2605.   CmpVal(%VAR%D,/:SCREENLEN/)
  2606.   IfTrue(ret)
  2607.   Setequal(d=1)
  2608.   PausePrompt
  2609.   If(%ARESP%)=(STOP) then Goto(FinishUp)
  2610.   Ret
  2611.  
  2612. *InvSection
  2613.  Beep(1)
  2614.  Say(&12&Invalid Choice!)
  2615.  Secpause(1)
  2616.  Goto(GetPrompt)
  2617.  
  2618. *MAIN
  2619. ;EnufSec(10)
  2620. ;IfNotTrue(Goto(BSel))
  2621. LoadMem(CONTROL\MAIN.MNU)
  2622.  
  2623. *BYE
  2624. EnufSec(10)
  2625. IfNotTrue(Goto(BSel))
  2626. LoadSub(CONTROL\MACROS\BYE.CTL)
  2627. Goto(Disp)
  2628.  
  2629. *REG
  2630.  LoadSub(CONTROL\ONREG.CTL)
  2631.  ;Display(ONHELP\REG)
  2632.  ;Enter
  2633.  Goto(Disp)
  2634.  
  2635. *EVENT
  2636.  Display(ONHELP\EVENT)
  2637.  ;Enter
  2638.  Goto(Disp)
  2639.  
  2640. *LOGON
  2641.  Display(ONHELP\LOGON)
  2642.  Goto(Disp)
  2643.  
  2644. *PERFORM
  2645.  Display(ONHELP\PERFORM)
  2646.  Goto(Disp)
  2647.  
  2648. *FILES
  2649.  Display(ONHELP\FILES)
  2650.  Goto(Disp)
  2651.  
  2652. *MEM
  2653.  Display(ONHELP\MEMORY)
  2654.  Goto(Disp)
  2655.  
  2656. *COMM
  2657.  LoadSub(CONTROL\ONCOMM.CTL)
  2658.  ;Display(ONHELP\COMM)
  2659.  Goto(Disp)
  2660.  
  2661. *DISPHLP
  2662.  Display(ONHELP\DISP)
  2663.  Goto(Disp)
  2664.  
  2665. *CDROM
  2666.  Display(ONHELP\CDROM)
  2667.  Goto(Disp)
  2668.  
  2669. *PM
  2670.  Display(ONHELP\PM)
  2671.  Goto(Disp)
  2672.  
  2673. *MULTI
  2674.  *Msdisp
  2675.    Display(ONHELP\MULTHELP)
  2676.  *MPrompt
  2677.    SetEqual(a=)
  2678.    Say(&15&Time Remaining: &14&%LEFT% &15&minutes.)
  2679.    MenuAsk(&3&Online Help Selection? &12&*)
  2680.  *MCheck
  2681.    BigIf (G:BYE,?:MSDISP,R:SDISP,Q:MAIN,1:INTERNODE,2:ONENODE)
  2682.    Jump (bsel)
  2683.    Goto(MsDisp)
  2684.  
  2685.  *INTERNODE
  2686.    Display(ONHELP\INTERNOD)
  2687.    Goto(MSDisp)
  2688.  
  2689.  *ONENODE
  2690.    Display(ONHELP\ONENODE)
  2691.    Goto(MSDisp)
  2692.  
  2693. *PBC
  2694.  *PBCSdisp
  2695.    Display(ONHELP\PBCHELP)
  2696.  *PBCPrompt
  2697.    SetEqual(a=)
  2698.    Say(&15&Time Remaining: &14&%LEFT% &15&minutes.)
  2699.    MenuAsk(&3&Online Help Selection? &12&*)
  2700.  *PBCCheck
  2701.    BigIf (G:BYE,?:PBCSDISP,R:SDISP,Q:MAIN,1:NONSTAND,2:TABCHG,3:EXITSAVE,4:NOEFFECT,5:BASIC)
  2702.    Jump (bsel)
  2703.    Goto(PBCSdisp)
  2704.  
  2705. *NONSTAND
  2706.  Display(ONHELP\NONSTAND)
  2707.  Goto(PBCSDisp)
  2708.  
  2709. *TABCHG
  2710.  Display(ONHELP\TABCHG)
  2711.  Goto(PBCSDisp)
  2712.  
  2713. *EXITSAVE
  2714.  Display(ONHELP\EXITSAVE)
  2715.  Goto(PBCSDisp)
  2716.  
  2717. *NOEFFECT
  2718.  Display(ONHELP\NOEFFECT)
  2719.  Goto(PBCSDisp)
  2720.  
  2721. *BASIC
  2722.  Display(ONHELP\BASIC)
  2723.  Goto(PBCSDisp)
  2724.  
  2725. *ZC
  2726.   LoadMem(Control\onzc.ctl)
  2727.  
  2728. *HARDWARE
  2729.  *HSdisp
  2730.    Display(ONHELP\HARDWARE)
  2731.  *HPrompt
  2732.    SetEqual(a=)
  2733.    Say(&15&Time Remaining: &14&%LEFT% &15&minutes.)
  2734.    MenuAsk(&3&Online Help Selection? &12&*)
  2735.  *HCheck
  2736.    BigIf (G:BYE,?:HSDISP,R:SDISP,Q:MAIN,1:TANDY,2:ZOOM,3:MITSUMI,4:ORCHID)
  2737.    Jump (bsel)
  2738.    Goto(HSDisp)
  2739.  
  2740.  *TANDY
  2741.   Display(ONHELP\TANDY)
  2742.   Goto(HSDisp)
  2743.  
  2744.  *ZOOM
  2745.   Display(ONHELP\ZOOM)
  2746.   Goto(HSDisp)
  2747.  
  2748.  *MITSUMI
  2749.   Display(ONHELP\MITSUMI)
  2750.   Goto(HSDisp)
  2751.  
  2752.  *ORCHID
  2753.   Display(ONHELP\ORCHID)
  2754.   Goto(HSDisp)
  2755.  
  2756. *SOFTWARE
  2757.   LoadMem(CONTROL\ONSOFT.CTL)
  2758.  
  2759. *MSGAREA
  2760.   LoadMem(CONTROL\ONMSG.CTL)
  2761.  
  2762. *TECHSPECS
  2763.  Display(ONHELP\TECHSPECS)
  2764.  Goto(Disp)
  2765.  
  2766. *PHONENUMS
  2767.  Display(ONHELP\PHONES)
  2768.  Goto(Disp)
  2769.  
  2770. *DLUPDATES
  2771.  Display(ONHELP\DLUPDATE)
  2772.  Goto(Disp)
  2773.  
  2774. *SYSREQS
  2775.  Display(ONHELP\SYSREQS)
  2776.  Goto(Disp)
  2777.  
  2778. *PBLOAD
  2779.  Display(ONHELP\PBLOAD)
  2780.  Goto(Disp)
  2781.  
  2782. *bSel
  2783. LoadSub(control\macros\badsel.ctl) ;invalid selection
  2784. ;Goto (disp)
  2785. Ret
  2786.  
  2787. ONEVENTCTL»;Event Problems and Questions
  2788.  *SSdisp
  2789.    Display(ONHELP\ONEVENT)
  2790.  *SPrompt
  2791.    SetEqual(a=)
  2792.    Say(&15&Time Remaining: &14&%LEFT% &15&minutes.)
  2793.    MenuAsk(&3&Online Help Selection? &12&*)
  2794.  *SCheck
  2795.    BigIf (G:BYE,?:SSDISP,R:SDISP,Q:MAIN,1:BATFILE,2:NORUN,3:OUTOFMEM)
  2796.    Jump (bsel)
  2797.    Goto(SSDisp)
  2798.  
  2799. *BATFILE
  2800.  Display(ONHELP\EVENTBAT)
  2801.  Goto(SSDisp)
  2802.  
  2803. *NORUN
  2804.  Display(ONHELP\EVENT2)
  2805.  Goto(SSDisp)
  2806.  
  2807. *OUTOFMEM
  2808.  Display(ONHELP\EVENT)
  2809.  Goto(SSDisp)
  2810.  
  2811. *SDISP
  2812.  Return
  2813.  ;LoadMem(Control\ONHELP.CTL,Goto(SDisp))
  2814.  
  2815. *MAIN
  2816.  ;LoadMem(Control\MAIN.MNU)
  2817.  SetEqual(/RESP=QUITTING)
  2818.  Return
  2819.  
  2820. *bSel
  2821. LoadSub(control\macros\badsel.ctl) ;invalid selection
  2822. Goto (ssdisp)
  2823. ;Ret
  2824. TQOTDCTLBSAY(&CR&&14&%FNAME%, your quote for the day is:&2&*)
  2825. INPOPEN(TQOTD.BBS)
  2826. RANDN(3028)
  2827. INPREAD(%ARESP%)
  2828. SAY(&CR&)
  2829. *DOIT
  2830. IF (%ARESP%)=(*) THEN GOTO (SHOWIT)
  2831. FENDIF(QT)
  2832. INPREAD
  2833. GOTO (DOIT)
  2834. *SHOWIT
  2835. INPREAD
  2836. IF (%ARESP%)=(*) THEN GOTO (QT)
  2837. FENDIF(QT)
  2838. SAY(%ARESP%)
  2839. GOTO(SHOWIT)
  2840. *QT
  2841. INPCLOSE
  2842. say()
  2843. enter
  2844. RETURN
  2845. BADNAMECTL⌠Log (--,Alias (%var%d) attempted logon.)
  2846. if (%graphics%)<>(WIP) then Display(display\BADNAME)
  2847. if (%graphics%)=(WIP) then jump (wipm)
  2848. QuitBBS
  2849.  
  2850.  
  2851. *wipm
  2852. setequal(c=13~You have entered a name that this BBS considers unacceptable.  Please do not call back.  We do not appreciate your call.~Bad Name Entered~0~)
  2853. jump (wipc)
  2854. secpause(3)
  2855. ret
  2856.  
  2857.  
  2858. *GCHAR
  2859. COMPRINT(%NV%TEXT%)
  2860. SETEQUAL(A=0)
  2861. DO
  2862. COMKEY
  2863. ASCII
  2864. IF(%ARESP%)=(21) THEN GOTO(GCHAR)
  2865. INC(A)
  2866. IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET
  2867. IF(%ARESP%)=(&B) THEN RET
  2868. IF(&A)>(45) THEN RET
  2869. IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%)
  2870. DELAY18TH(2)
  2871. LOOP
  2872. *WIPC
  2873. LOCALKEY(1)
  2874. IFNOTTRUE(GOTO(NOLKEY))
  2875. SYSKEYCHECK
  2876. SETEQUAL(/RESP=)
  2877. SETEQUAL(/RESP=)
  2878. *NOLKEY
  2879. CCARRIER
  2880. IF(%ARESP%)=(0) THEN GOTO (NOC0)
  2881. CHECKSUM(%VAR%C)
  2882. SETEQUAL(B=6)
  2883. SETNV(TEXT=$%ARESP%%VAR%C%C%13%)
  2884. SETNV(PBACK=)
  2885. JUMP(GCHAR)
  2886. IF(%ARESP%)<>(6) THEN JUMP(GCHAR)
  2887. SETEQUAL(/IBUFF=%NV%PBACK%)
  2888. LEN(%NV%PBACK%)
  2889. SETEQUAL(/IBUFF0=%ARESP%)
  2890. RET
  2891. *NOC0
  2892. log(<<,Carrier lost.)
  2893. quitbbs
  2894. REFUSEDCTLDisplay(display\REFUSED)
  2895. Say (&11&(                                                            )&15&*)
  2896. Back (61)
  2897. Ask (%MIN%1%%LEN%60%*)
  2898. Say (&CR&&14&Thank you very much for your cooperation.&CR&)
  2899. Log (--,User (%var%d) declined membership because:)
  2900. Log (--,%RESP%)
  2901. QuitBBS
  2902. YESNOCTLFsay(%var%a (&12&Y&15&/&12&N&15&)&14&*)
  2903. back(4)
  2904. yesnoask(*)
  2905. return
  2906. DOORSM  `;modified for The Swing BBS...
  2907.  
  2908. *disp
  2909. SetActivity (Doors Menu)
  2910. *sdisp
  2911. Display (display\doors,/:SEC/)
  2912.  
  2913. *prompt
  2914. menuask (%MIN%1%&0&$7$%CACT%$0$&7& %LEFT% Minutes Remain. &15&Please select, &14&%FNAME%&12&: &15&*)
  2915. BigIf (G:GOODBYE,Q:MAIN,H:HELP,?:SDISP,X:EXP)
  2916. number(%RESP%)
  2917. ifNotTrue( goto (bsel))
  2918.  
  2919. seek(door%RESP%.Bat)  ;;;;;;modified for THE SWING...
  2920. ifnottrue(goto (bsel))
  2921. clearscr
  2922. Display(Display\door%RESP%)
  2923. Log(--,Executing Door #%RESP%)
  2924. FixFile (door.bt,door.bat)
  2925. setequal (a=/:DOORS/)
  2926. inc(a)
  2927. setequal(/DOORSE=%VAR%A)
  2928. Say(&14&&CR&Please wait, Opening Door #%resp% . . .*)
  2929. mcavail(N)
  2930. zap(tagtmp.%node%,%nv%totalTime%)
  2931. appendto(tagtmp.%node%,%nv%totalfree%)
  2932. Exit (80,DOOR|)
  2933.  
  2934. *bsel
  2935. loadsub(control\macros\badsel.ctl)
  2936. goto (disp)
  2937.  
  2938. *GOODBYE
  2939. EnufSec(10)
  2940. IfNotTrue(Goto(BSel))
  2941. LoadSub(CONTROL\MACROS\BYE.CTL)
  2942. Goto(Disp)
  2943.  
  2944. *MAIN
  2945. LoadMem(CONTROL\MAIN.MNU)
  2946.  
  2947. *HELP
  2948. EnufSec(10)
  2949. IfNotTrue(Goto(BSel))
  2950. Display(display\help\door,/:SEC/)
  2951. Log (--,Viewed Doors Menu Help)
  2952. Goto (Disp)
  2953.  
  2954. *EXP
  2955. LoadSub(CONTROL\MACROS\EXPERT.CTL)
  2956. Goto(Disp)
  2957.  
  2958. *DOOR16
  2959. LoadSub(DOORS\VOTE\VOTE.CTL)
  2960. Goto(Disp)
  2961.  
  2962. *DOOR17
  2963. LoadSub(DOORS\TV\TRIV.CTL)
  2964. Goto(Disp)
  2965.  
  2966. *SL0
  2967. LoadSub(CONTROL\MACROS\VIEWSCR.CTL)
  2968. Goto(Disp)
  2969.  
  2970. *pbr
  2971. loadsub(doors\pbreg\pbreg.ctl)
  2972. goto (disp)
  2973.  
  2974. *twg
  2975. view(\fd\mark.asc)
  2976. goto (disp)
  2977.  
  2978. *bbs
  2979. loadsub(doors\bbs\bbs.ctl)
  2980. goto(disp)
  2981. SCR4CTLHSay(&3&-USER #%VAR%Y: [&15&\:NAME\&3&]-)
  2982. SAY(&7&(&12&1&7&)  &7&Flag 39 &14&\:FL39\ &7&(&12&12&7&) Flag 50 &14&\:FL50\ &7&(&12&23&7&) Flag 61 &14&\:FL61\ &7&(&12&34&7&) Flag 72 &14&\:FL72\ &7&(&12&45&7&) Flag 83 &14&\:FL83\)
  2983. SAY(&7&(&12&2&7&)  &7&Flag 40 &14&\:FL40\ &7&(&12&13&7&) Flag 51 &14&\:FL51\ &7&(&12&24&7&) Flag 62 &14&\:FL62\ &7&(&12&35&7&) Flag 73 &14&\:FL73\ &7&(&12&46&7&) Flag 84 &14&\:FL84\)
  2984. SAY(&7&(&12&3&7&)  &7&Flag 41 &14&\:FL41\ &7&(&12&14&7&) Flag 52 &14&\:FL52\ &7&(&12&25&7&) Flag 63 &14&\:FL63\ &7&(&12&36&7&) Flag 74 &14&\:FL74\ &7&(&12&47&7&) Flag 85 &14&\:FL85\)
  2985. SAY(&7&(&12&4&7&)  &7&Flag 42 &14&\:FL42\ &7&(&12&15&7&) Flag 53 &14&\:FL53\ &7&(&12&26&7&) Flag 64 &14&\:FL64\ &7&(&12&37&7&) Flag 75 &14&\:FL75\ &7&(&12&48&7&) Flag 86 &14&\:FL86\)
  2986. SAY(&7&(&12&5&7&)  &7&Flag 43 &14&\:FL43\ &7&(&12&16&7&) Flag 54 &14&\:FL54\ &7&(&12&27&7&) Flag 65 &14&\:FL65\ &7&(&12&38&7&) Flag 76 &14&\:FL76\ &7&(&12&49&7&) Flag 87 &14&\:FL87\)
  2987. SAY(&7&(&12&6&7&)  &7&Flag 44 &14&\:FL44\ &7&(&12&17&7&) Flag 55 &14&\:FL55\ &7&(&12&28&7&) Flag 66 &14&\:FL66\ &7&(&12&39&7&) Flag 77 &14&\:FL77\)
  2988. SAY(&7&(&12&7&7&)  &7&Flag 45 &14&\:FL45\ &7&(&12&18&7&) Flag 56 &14&\:FL56\ &7&(&12&29&7&) Flag 67 &14&\:FL67\ &7&(&12&40&7&) Flag 78 &14&\:FL78\)
  2989. SAY(&7&(&12&8&7&)  &7&Flag 46 &14&\:FL46\ &7&(&12&19&7&) Flag 57 &14&\:FL57\ &7&(&12&30&7&) Flag 68 &14&\:FL68\ &7&(&12&41&7&) Flag 79 &14&\:FL79\)
  2990. SAY(&7&(&12&9&7&)  &7&Flag 47 &14&\:FL47\ &7&(&12&20&7&) Flag 58 &14&\:FL58\ &7&(&12&31&7&) Flag 69 &14&\:FL69\ &7&(&12&42&7&) Flag 80 &14&\:FL80\)
  2991. SAY(&7&(&12&10&7&) &7&Flag 48 &14&\:FL48\ &7&(&12&21&7&) Flag 59 &14&\:FL59\ &7&(&12&32&7&) Flag 70 &14&\:FL70\ &7&(&12&43&7&) Flag 81 &14&\:FL81\)
  2992. SAY(&7&(&12&11&7&) &7&Flag 49 &14&\:FL49\ &7&(&12&22&7&) Flag 60 &14&\:FL60\ &7&(&12&33&7&) Flag 71 &14&\:FL71\ &7&(&12&44&7&) Flag 82 &14&\:FL82\)
  2993. return
  2994. ONHELPCT_m;Online Help Database
  2995. ;Programmed for Powerboard World Support BBS
  2996. ;Programmed by Doug Vermes, 12/29/93
  2997.  
  2998. *Disp
  2999. Say(&CR&&12&The Online Help is Temporarily Offline As it is Being Updated.)
  3000. Say(Thank you for understanding.&CR&)
  3001. Goto(Main)
  3002. SetActivity (Main Menu)
  3003. ;if(/:EXPERT/)=(Y) then linefeed(1)
  3004. ;if(/:EXPERT/)=(Y) then Goto (Prompt)
  3005. *sdisp
  3006. Display (onhelp\onhelp2)
  3007.  
  3008. *Prompt
  3009. SetEqual(a=)
  3010. Say(&15&Time Remaining: &14&%LEFT% &15&minutes.)
  3011. MenuAsk(&3&Online Help Selection or Keyword to Search For? &12&*)
  3012. *Check
  3013. BigIf (G:BYE,?:SDISP,Q:MAIN,1:REG,2:PERFORM,3:MULTI,4:PBC,5:ZC,6:COMM,7:DISPHLP,8:CDROM,9:LOGON,10:PM)
  3014. BigIf (11:EVENT,12:FILES,13:MEM,14:HARDWARE,15:SOFTWARE,16:MSGAREA,17:PHONENUMS,18:SYSREQS,19:TECHSPECS,20:DLUPDATES)
  3015. Goto(Keyword)
  3016. Jump (bsel)
  3017. Goto(Disp)
  3018.  
  3019. *KeyWord
  3020.  SetEqual(c=1)
  3021.  ;%VAR%C will be a counter var
  3022.  SetEqual(d=1)
  3023.  ;%VAR%D will be a clone var used for screen pausing
  3024.  MenuEqual(q=%RESP%)
  3025.  ;%VAR%Q stores Keyword Being Searched For
  3026.  Seek(onhelp\list.txt)
  3027.  IfNotTrue(Goto(Disp))
  3028.  ClearScr
  3029.  Say(&CR&&14&Keyword Search for: &12&%VAR%Q)
  3030.  Say(&CR&&11&#  &12&HELP SECTION)
  3031.  Say(&7&-------------------------------------------------------------------------)
  3032.  InpOpen(Onhelp\list.txt)
  3033.  
  3034.  Do
  3035.   InpRead
  3036.   SetEqual(r=%ARESP%)
  3037.   ;%VAR%R stores filename temporarily
  3038.   SeekFile(ONHELP\%VAR%R,%VAR%Q)
  3039.   IfTrue(Jump(SetAndInc))
  3040.  EofLoop  
  3041.  *FinishUp
  3042.  InpClose
  3043. *GetPrompt 
  3044.  MenuAsk(&3&Help Section to View (Q to Quit): &14&*)
  3045.  If(%RESP%)=(Q) then Goto(Main)
  3046.  Number(%RESP%)
  3047.  IfNotTrue(goto(GetPrompt))
  3048.  CmpVal(%RESP%,%VAR%C)
  3049.  IfNotTrue(Goto(InvSection))
  3050.  Display(ONHELP\^:%RESP%^)
  3051. Goto(Disp)
  3052.   *SetAndInc
  3053.   SetEqual(^%VAR%C=%VAR%R)
  3054.   ;Say(&3&%VAR%C: &12&%VAR%R*)
  3055.   Say(&3&%VAR%C: &12&*)
  3056.   SetEqual(/NDX=ONHELP\ONHELP.NDX)
  3057.   SeekUser(%VAR%R)
  3058.   IfTrue(Say(%NDFROM%))
  3059.   IfNotTrue(Say(%VAR%R))
  3060.   Inc(c)
  3061.   Inc(d)
  3062.   CmpVal(%VAR%D,/:SCREENLEN/)
  3063.   IfTrue(ret)
  3064.   Setequal(d=1)
  3065.   PausePrompt
  3066.   If(%ARESP%)=(STOP) then Goto(FinishUp)
  3067.   Ret
  3068.  
  3069. *InvSection
  3070.  Beep(1)
  3071.  Say(&12&Invalid Choice!)
  3072.  Secpause(1)
  3073.  Goto(GetPrompt)
  3074.  
  3075. *MAIN
  3076. ;EnufSec(10)
  3077. ;IfNotTrue(Goto(BSel))
  3078. LoadMem(CONTROL\MAIN.MNU)
  3079.  
  3080. *BYE
  3081. EnufSec(10)
  3082. IfNotTrue(Goto(BSel))
  3083. LoadSub(CONTROL\MACROS\BYE.CTL)
  3084. Goto(Disp)
  3085.  
  3086. *REG
  3087.  LoadSub(CONTROL\ONREG.CTL)
  3088.  ;Display(ONHELP\REG)
  3089.  ;Enter
  3090.  Goto(Disp)
  3091.  
  3092. *EVENT
  3093.  Display(ONHELP\EVENT)
  3094.  ;Enter
  3095.  Goto(Disp)
  3096.  
  3097. *LOGON
  3098.  Display(ONHELP\LOGON)
  3099.  Goto(Disp)
  3100.  
  3101. *PERFORM
  3102.  Display(ONHELP\PERFORM)
  3103.  Goto(Disp)
  3104.  
  3105. *FILES
  3106.  Display(ONHELP\FILES)
  3107.  Goto(Disp)
  3108.  
  3109. *MEM
  3110.  Display(ONHELP\MEMORY)
  3111.  Goto(Disp)
  3112.  
  3113. *COMM
  3114.  LoadSub(CONTROL\ONCOMM.CTL)
  3115.  ;Display(ONHELP\COMM)
  3116.  Goto(Disp)
  3117.  
  3118. *DISPHLP
  3119.  Display(ONHELP\DISP)
  3120.  Goto(Disp)
  3121.  
  3122. *CDROM
  3123.  Display(ONHELP\CDROM)
  3124.  Goto(Disp)
  3125.  
  3126. *PM
  3127.  Display(ONHELP\PM)
  3128.  Goto(Disp)
  3129.  
  3130. *MULTI
  3131.  *Msdisp
  3132.    Display(ONHELP\MULTHELP)
  3133.  *MPrompt
  3134.    SetEqual(a=)
  3135.    Say(&15&Time Remaining: &14&%LEFT% &15&minutes.)
  3136.    MenuAsk(&3&Online Help Selection? &12&*)
  3137.  *MCheck
  3138.    BigIf (G:BYE,?:MSDISP,R:SDISP,Q:MAIN,1:INTERNODE,2:ONENODE)
  3139.    Jump (bsel)
  3140.    Goto(MsDisp)
  3141.  
  3142.  *INTERNODE
  3143.    Display(ONHELP\INTERNOD)
  3144.    Goto(MSDisp)
  3145.  
  3146.  *ONENODE
  3147.    Display(ONHELP\ONENODE)
  3148.    Goto(MSDisp)
  3149.  
  3150. *PBC
  3151.  *PBCSdisp
  3152.    Display(ONHELP\PBCHELP)
  3153.  *PBCPrompt
  3154.    SetEqual(a=)
  3155.    Say(&15&Time Remaining: &14&%LEFT% &15&minutes.)
  3156.    MenuAsk(&3&Online Help Selection? &12&*)
  3157.  *PBCCheck
  3158.    BigIf (G:BYE,?:PBCSDISP,R:SDISP,Q:MAIN,1:NONSTAND,2:TABCHG,3:EXITSAVE,4:NOEFFECT,5:BASIC)
  3159.    Jump (bsel)
  3160.    Goto(PBCSdisp)
  3161.  
  3162. *NONSTAND
  3163.  Display(ONHELP\NONSTAND)
  3164.  Goto(PBCSDisp)
  3165.  
  3166. *TABCHG
  3167.  Display(ONHELP\TABCHG)
  3168.  Goto(PBCSDisp)
  3169.  
  3170. *EXITSAVE
  3171.  Display(ONHELP\EXITSAVE)
  3172.  Goto(PBCSDisp)
  3173.  
  3174. *NOEFFECT
  3175.  Display(ONHELP\NOEFFECT)
  3176.  Goto(PBCSDisp)
  3177.  
  3178. *BASIC
  3179.  Display(ONHELP\BASIC)
  3180.  Goto(PBCSDisp)
  3181.  
  3182. *ZC
  3183.   LoadMem(Control\onzc.ctl)
  3184.  
  3185. *HARDWARE
  3186.  *HSdisp
  3187.    Display(ONHELP\HARDWARE)
  3188.  *HPrompt
  3189.    SetEqual(a=)
  3190.    Say(&15&Time Remaining: &14&%LEFT% &15&minutes.)
  3191.    MenuAsk(&3&Online Help Selection? &12&*)
  3192.  *HCheck
  3193.    BigIf (G:BYE,?:HSDISP,R:SDISP,Q:MAIN,1:TANDY,2:ZOOM,3:MITSUMI,4:ORCHID)
  3194.    Jump (bsel)
  3195.    Goto(HSDisp)
  3196.  
  3197.  *TANDY
  3198.   Display(ONHELP\TANDY)
  3199.   Goto(HSDisp)
  3200.  
  3201.  *ZOOM
  3202.   Display(ONHELP\ZOOM)
  3203.   Goto(HSDisp)
  3204.  
  3205.  *MITSUMI
  3206.   Display(ONHELP\MITSUMI)
  3207.   Goto(HSDisp)
  3208.  
  3209.  *ORCHID
  3210.   Display(ONHELP\ORCHID)
  3211.   Goto(HSDisp)
  3212.  
  3213. *SOFTWARE
  3214.   LoadMem(CONTROL\ONSOFT.CTL)
  3215.  
  3216. *MSGAREA
  3217.   LoadMem(CONTROL\ONMSG.CTL)
  3218.  
  3219. *TECHSPECS
  3220.  Display(ONHELP\TECHSPECS)
  3221.  Goto(Disp)
  3222.  
  3223. *PHONENUMS
  3224.  Display(ONHELP\PHONES)
  3225.  Goto(Disp)
  3226.  
  3227. *DLUPDATES
  3228.  Display(ONHELP\DLUPDATE)
  3229.  Goto(Disp)
  3230.  
  3231. *SYSREQS
  3232.  Display(ONHELP\SYSREQS)
  3233.  Goto(Disp)
  3234.  
  3235. *bSel
  3236. LoadSub(control\macros\badsel.ctl) ;invalid selection
  3237. ;Goto (disp)
  3238. Ret
  3239.  
  3240. ONFILECTLú;File-Related
  3241.  *SSdisp
  3242.    Display(ONHELP\ONFILE)
  3243.  *SPrompt
  3244.    SetEqual(a=)
  3245.    Say(&15&Time Remaining: &14&%LEFT% &15&minutes.)
  3246.    MenuAsk(&3&Online Help Selection? &12&*)
  3247.  *SCheck
  3248.    BigIf (G:BYE,?:SSDISP,R:SDISP,Q:MAIN,1:CANTMOVE,2:FREEZES,3:NOTRANSFER)
  3249.    Jump (bsel)
  3250.    Goto(SSDisp)
  3251.  
  3252. *CANTMOVE
  3253.  Display(ONHELP\FILES)
  3254.  Goto(SSDisp)
  3255.  
  3256. *FREEZES
  3257.  Display(ONHELP\IRQ)
  3258.  Goto(SSDisp)
  3259.  
  3260. *NOTRANSFER
  3261.  Display(ONHELP\NOTRANS)
  3262.  Goto(SSDisp)
  3263.  
  3264. *SDISP
  3265.  Return
  3266.  ;LoadMem(Control\ONHELP.CTL,Goto(SDisp))
  3267.  
  3268. *MAIN
  3269.  ;LoadMem(Control\MAIN.MNU)
  3270.  SetEqual(/RESP=QUITTING)
  3271.  Return
  3272.  
  3273. *bSel
  3274. LoadSub(control\macros\badsel.ctl) ;invalid selection
  3275. Goto (ssdisp)
  3276. ;Ret
  3277. ONGENCTLù*GCSdisp
  3278.    Display(ONHELP\ONGEN)
  3279.  *GCPrompt
  3280.    SetEqual(a=)
  3281.    Say(&15&Time Remaining: &14&%LEFT% &15&minutes.)
  3282.    MenuAsk(&3&Online Help Selection? &12&*)
  3283.  *GCCheck
  3284.    BigIf (G:BYE,?:GCSDISP,R:SDISP,Q:MAIN,1:ADDENDUM,2:FLAGS,3:UUPB)
  3285.    Jump (bsel)
  3286.    Goto(GCSDisp)
  3287.  
  3288.  *ADDENDUM
  3289.   Display(ONHELP\ADDENDUM)
  3290.   Goto(GCSDisp)
  3291.  
  3292.  *FLAGS
  3293.   Display(ONHELP\FLAGS)
  3294.   Goto(GCSDisp)
  3295.  
  3296.  *UUPB
  3297.   Display(ONHELP\UUPB)
  3298.   Goto(GCSDisp)
  3299.  
  3300. *MAIN
  3301. ; LoadMem(Control\MAIN.MNU)
  3302.  SetEqual(/RESP=QUITTING)
  3303.  Return
  3304.  
  3305. *bSel
  3306. LoadSub(control\macros\badsel.ctl) ;invalid selection
  3307. Goto (gCsdisp)
  3308. ;Ret
  3309.  
  3310. *SDISP
  3311.  Return 
  3312.  ;LoadMem(Control\ONHELP.CTL,Goto(SDisp))
  3313. ONHARDCTL«*HARDWARE
  3314.  *HSdisp
  3315.    Display(ONHELP\HARDWARE)
  3316.  *HPrompt
  3317.    SetEqual(a=)
  3318.    Say(&15&Time Remaining: &14&%LEFT% &15&minutes.)
  3319.    MenuAsk(&3&Online Help Selection? &12&*)
  3320.  *HCheck
  3321.    BigIf (G:BYE,?:HSDISP,R:SDISP,Q:MAIN,1:TANDY,2:ZOOM,3:MITSUMI,4:ORCHID)
  3322.    Jump (bsel)
  3323.    Goto(HSDisp)
  3324.  
  3325.  *TANDY
  3326.   Display(ONHELP\TANDY)
  3327.   Goto(HSDisp)
  3328.  
  3329.  *ZOOM
  3330.   Display(ONHELP\ZOOM)
  3331.   Goto(HSDisp)
  3332.  
  3333.  *MITSUMI
  3334.   Display(ONHELP\MITSUMI)
  3335.   Goto(HSDisp)
  3336.  
  3337.  *ORCHID
  3338.   Display(ONHELP\ORCHID)
  3339.   Goto(HSDisp)
  3340.  
  3341. *SDISP
  3342. Return
  3343.  
  3344. *MAIN
  3345.  ;LoadMem(Control\MAIN.MNU)
  3346.  SetEqual(/RESP=QUITTING)
  3347.  Return
  3348.  
  3349. *bSel
  3350. LoadSub(control\macros\badsel.ctl) ;invalid selection
  3351. Goto (Hsdisp)
  3352. ;Ret
  3353.  
  3354. ONHELPCTL);Online Help Database
  3355. ;Programmed for Powerboard World Support BBS
  3356. ;Programmed by Doug Vermes, 12/29/93
  3357.  
  3358. *Disp
  3359. SetActivity (Main Menu)
  3360. ;if(/:EXPERT/)=(Y) then linefeed(1)
  3361. ;if(/:EXPERT/)=(Y) then Goto (Prompt)
  3362. *sdisp
  3363. clearscr
  3364. Display (onhelp\onhelp3)
  3365.  
  3366. *Prompt
  3367. SetEqual(a=)
  3368. Say(&15&Time Remaining: &14&%LEFT% &15&minutes.)
  3369. MenuAsk(&3&Online Help Selection or Keyword to Search For? &12&*)
  3370. *Check
  3371. Bigif (G:BYE,?:SDISP,Q:MAIN)
  3372. ;Bigif (G:BYE,?:SDISP,Q:MAIN,1:REG,7:EVENT,8:FILES,13:MULTI,14:PBC,16:PWRMAIL,12:MISC,21:ZC,4:COMM,9:HARDWARE,19:SOFTWARE,11:MSGAREA,26:UPGRADEQS,6:DOORS,20:SPECIFIC)
  3373.  
  3374. ;BELOW ARE FOR SUB-MENUS
  3375. If(%RESP%)=(1) then SetEqual(n=ONREG)
  3376. If(%RESP%)=(2) then SetEqual(n=ONGEN)
  3377. If(%RESP%)=(4) then SetEqual(n=ONCOMM)
  3378. If(%RESP%)=(6) then SetEqual(n=ONDOORS)
  3379. If(%RESP%)=(7) then SetEqual(n=ONEVENT)
  3380. If(%RESP%)=(8) then SetEqual(n=ONFILE)
  3381. If(%RESP%)=(9) then SetEqual(n=ONHARD)
  3382. If(%RESP%)=(11) then SetEqual(n=ONMSG)
  3383. If(%RESP%)=(12) then SetEqual(n=ONMISC)
  3384. If(%RESP%)=(13) then SetEqual(n=ONMULTI)
  3385. If(%RESP%)=(14) then SetEqual(n=ONPBC)
  3386. If(%RESP%)=(16) then SetEqual(n=ONPM)
  3387. If(%RESP%)=(19) then SetEqual(n=ONSOFT)
  3388. If(%RESP%)=(20) then SetEqual(n=ONSPEC)
  3389. If(%RESP%)=(21) then SetEqual(n=ONZC)
  3390. If(%RESP%)=(26) then SetEqual(n=ONUPGRD)
  3391.  
  3392. ;BELOW ARE FOR ONE-SCREEN HELPS
  3393. If(%RESP%)=(3) then SetEqual(n=CDROM)
  3394. If(%RESP%)=(5) then SetEqual(n=DISP)
  3395. If(%RESP%)=(10) then SetEqual(n=MEMORY)
  3396. If(%RESP%)=(15) then SetEqual(n=PERFORM)
  3397. If(%RESP%)=(17) then SetEqual(n=PBLOAD)
  3398. If(%RESP%)=(18) then SetEqual(n=LOGON)
  3399. If(%RESP%)=(22) then SetEqual(n=PHONES)
  3400. If(%RESP%)=(23) then SetEqual(n=DLUPDATE)
  3401. If(%RESP%)=(24) then Setequal(n=SYSREQS)
  3402. if(%RESP%)=(25) then SetEqual(n=TECHSPECS)
  3403. If(%RESP%)=(27) then SetEqual(n=REGUPG)
  3404.  
  3405. Number(%RESP%)
  3406. IfTrue(Goto(Generic))
  3407. ;BigIf (G:BYE,?:SDISP,Q:MAIN,1:REG,2:PERFORM,3:MULTI,4:PBC,5:ZC,6:COMM,7:DISPHLP,8:CDROM,9:LOGON,10:PM)
  3408. ;BigIf (11:EVENT,12:FILES,13:MEM,14:HARDWARE,15:SOFTWARE,16:MSGAREA,17:PHONENUMS,18:SYSREQS,19:TECHSPECS,20:DLUPDATES)
  3409. ;BigIf (21:PBLOAD)
  3410. Goto(Keyword)
  3411. Jump (bsel)
  3412. Goto(Disp)
  3413.  
  3414. *KeyWord
  3415.  SetEqual(c=1)
  3416.  ;%VAR%C will be a counter var
  3417.  SetEqual(d=1)
  3418.  ;%VAR%D will be a clone var used for screen pausing
  3419.  MenuEqual(q=%RESP%)
  3420.  ;%VAR%Q stores Keyword Being Searched For
  3421.  Seek(onhelp\list.txt)
  3422.  IfNotTrue(Goto(Disp))
  3423.  ClearScr
  3424.  Say(&CR&&14&Keyword Search for: &12&%VAR%Q)
  3425.  Say(&CR&&11&#  &12&HELP SECTION)
  3426.  Say(&7&-------------------------------------------------------------------------)
  3427.  InpOpen(Onhelp\list.txt)
  3428.  Say(&15&\*)
  3429.  Do
  3430.   Back(1)
  3431.   Say(&15&\*)
  3432.   InpRead
  3433.   Back(1)
  3434.   Say(|*)
  3435.   SetEqual(r=%ARESP%)
  3436.   Back(1)
  3437.   Say(/*)
  3438.   ;%VAR%R stores filename temporarily
  3439.   SeekFile(ONHELP\%VAR%R,%VAR%Q)
  3440.   Back(1)
  3441.   Say(-*)
  3442.   IfTrue(Jump(SetAndInc))
  3443.  EofLoop  
  3444.  *FinishUp
  3445.  InpClose
  3446.  Back(1)
  3447. *GetPrompt 
  3448.  MenuAsk(&3&Help Section to View (Q to Quit): &14&*)
  3449.  If(%RESP%)=(Q) then Goto(Main)
  3450.  Number(%RESP%)
  3451.  IfNotTrue(goto(GetPrompt))
  3452.  CmpVal(%RESP%,%VAR%C)
  3453.  IfNotTrue(Goto(InvSection))
  3454.  SetEqual(x=%RESP%)
  3455.  Find(^:x^,.)
  3456.  If(%ARESP%)=(0) then Goto(NoExten)
  3457.  AddVar(%ARESP%+-1=u)
  3458.  Get(^:x^,1,%VAR%U)
  3459.  Display(ONHELP\%ARESP%)
  3460. Goto(Disp)
  3461.   *SetAndInc
  3462.   SetEqual(^%VAR%C=%VAR%R)
  3463.   Back(1)
  3464.   ;Say(&3&%VAR%C: &12&%VAR%R*)
  3465.   Say(&3&%VAR%C: &12&*)
  3466.   SetEqual(/NDX=ONHELP\ONHELP.NDX)
  3467.   SeekUser(%VAR%R)
  3468.   IfTrue(Say(%NDFROM%))
  3469.   IfNotTrue(Say(%VAR%R))
  3470.   Inc(c)
  3471.   Inc(d)
  3472.   CmpVal(%VAR%D,/:SCREENLEN/)
  3473.   IfTrue(ret)
  3474.   Setequal(d=1)
  3475.   PausePrompt
  3476.   If(%ARESP%)=(STOP) then Goto(FinishUp)
  3477.   Ret
  3478.  
  3479. *InvSection
  3480.  Beep(1)
  3481.  Say(&12&Invalid Choice!)
  3482.  Secpause(1)
  3483.  Goto(GetPrompt)
  3484.  
  3485. *MAIN
  3486. ;EnufSec(10)
  3487. ;IfNotTrue(Goto(BSel))
  3488. ;LoadMem(CONTROL\MAIN.MNU)
  3489. Return
  3490.  
  3491. *BYE
  3492. EnufSec(10)
  3493. IfNotTrue(Goto(BSel))
  3494. LoadSub(CONTROL\MACROS\BYE.CTL)
  3495. Goto(Disp)
  3496.  
  3497. *GENERIC
  3498.  Seek(CONTROL\%VAR%N.CTL)
  3499.  IfTrue(Goto(LoadCTL))
  3500.  Display(ONHELP\%VAR%N)
  3501.  Goto(Disp)
  3502.  
  3503. *LOADCTL
  3504.  LoadSub(CONTROL\%VAR%N.CTL)
  3505.  If(%RESP%)=(QUITTING) then Return
  3506.  Goto(Disp)
  3507.  
  3508.  
  3509. *bSel
  3510. LoadSub(control\macros\badsel.ctl) ;invalid selection
  3511. ;Goto (disp)
  3512. Ret
  3513.  
  3514. *NOEXTEN
  3515.  Display(ONHELP\^:%RESP%^)
  3516.  Goto(disp)
  3517. ONMISCCTLt;Miscellaneous PB-Related Program Problems
  3518.  *SSdisp
  3519.    Display(ONHELP\ONMISC)
  3520.  *SPrompt
  3521.    SetEqual(a=)
  3522.    Say(&15&Time Remaining: &14&%LEFT% &15&minutes.)
  3523.    MenuAsk(&3&Online Help Selection? &12&*)
  3524.  *SCheck
  3525.    BigIf (G:BYE,?:SSDISP,R:SDISP,Q:MAIN,1:CBV,2:PCLPROG)
  3526.    Jump (bsel)
  3527.    Goto(SSDisp)
  3528.  
  3529. *CBV
  3530.  Display(ONHELP\CBV)
  3531.  Goto(SSDisp)
  3532.  
  3533. *PCLPROG
  3534.  Display(ONHELP\PCLPROG)
  3535.  Goto(SSDisp)
  3536.  
  3537. *SDISP
  3538.  Return
  3539.  ;LoadMem(Control\ONHELP.CTL,Goto(SDisp))
  3540.  
  3541. *MAIN
  3542.  ;LoadMem(Control\MAIN.MNU)
  3543.  SetEqual(/RESP=QUITTING)
  3544.  Return
  3545.  
  3546. *bSel
  3547. LoadSub(control\macros\badsel.ctl) ;invalid selection
  3548. Goto (SSdisp)
  3549. ;Ret
  3550. ONMSGCTL/;MsgArea  
  3551.  *MSdisp
  3552.    Display(ONHELP\MSGAREA)
  3553.  *MPrompt
  3554.    SetEqual(a=)
  3555.    Say(&15&Time Remaining: &14&%LEFT% &15&minutes.)
  3556.    MenuAsk(&3&Online Help Selection? &12&*)
  3557.  *MCheck
  3558.    BigIf (G:BYE,?:MSDISP,R:MDISP,Q:MAIN,1:NEWAREAS,2:ADDAREAS)
  3559.    Jump (bsel)
  3560.    Goto(MSDisp)
  3561.  
  3562. *NEWAREAS
  3563.  Display(ONHELP\MSGPROBS)
  3564.  Goto(MSDisp)
  3565.  
  3566. *MDISP
  3567.  Return
  3568.  ;LoadMem(Control\ONHELP.CTL,Goto(SDisp))
  3569.  
  3570. *MAIN
  3571.  ;LoadMem(Control\MAIN.MNU)
  3572.  SetEqual(/RESP=QUITTING)
  3573.  Return
  3574.  
  3575. *bSel
  3576. LoadSub(control\macros\badsel.ctl) ;invalid selection
  3577. Goto (mSdisp)
  3578. ;Ret
  3579. ONMULTICTLn;Multinode Problems
  3580.  *SSdisp
  3581.    Display(ONHELP\MULTHELP)
  3582.  *SPrompt
  3583.    SetEqual(a=)
  3584.    Say(&15&Time Remaining: &14&%LEFT% &15&minutes.)
  3585.    MenuAsk(&3&Online Help Selection? &12&*)
  3586.  *SCheck
  3587.    BigIf (G:BYE,?:SSDISP,R:SDISP,Q:MAIN,1:INTERNOD,2:ONENODE)
  3588.    Jump (bsel)
  3589.    Goto(SSDisp)
  3590.  
  3591. *INTERNOD
  3592.  Display(ONHELP\INTERNOD)
  3593.  Goto(SSDisp)
  3594.  
  3595. *ONENODE
  3596.  Display(ONHELP\ONENODE)
  3597.  Goto(SSDisp)
  3598.  
  3599. *SDISP
  3600.  Return
  3601.  ;LoadMem(Control\ONHELP.CTL,Goto(SDisp))
  3602.  
  3603. *MAIN
  3604.  ;LoadMem(Control\MAIN.MNU)
  3605.  SetEqual(/RESP=QUITTING)
  3606.  Return
  3607.  
  3608. *bSel
  3609. LoadSub(control\macros\badsel.ctl) ;invalid selection
  3610. Goto (ssdisp)
  3611. ;Ret
  3612. ONPBCCTL*PBC
  3613.  *PBCSdisp
  3614.    Display(ONHELP\PBCHELP)
  3615.  *PBCPrompt
  3616.    SetEqual(a=)
  3617.    Say(&15&Time Remaining: &14&%LEFT% &15&minutes.)
  3618.    MenuAsk(&3&Online Help Selection? &12&*)
  3619.  *PBCCheck
  3620.    BigIf (G:BYE,?:PBCSDISP,R:SDISP,Q:MAIN,1:NONSTAND,2:TABCHG,3:EXITSAVE,4:NOEFFECT,5:BASIC)
  3621.    Jump (bsel)
  3622.    Goto(PBCSdisp)
  3623.  
  3624. *NONSTAND
  3625.  Display(ONHELP\NONSTAND)
  3626.  Goto(PBCSDisp)
  3627.  
  3628. *TABCHG
  3629.  Display(ONHELP\TABCHG)
  3630.  Goto(PBCSDisp)
  3631.  
  3632. *EXITSAVE
  3633.  Display(ONHELP\EXITSAVE)
  3634.  Goto(PBCSDisp)
  3635.  
  3636. *NOEFFECT
  3637.  Display(ONHELP\NOEFFECT)
  3638.  Goto(PBCSDisp)
  3639.  
  3640. *BASIC
  3641.  Display(ONHELP\BASIC)
  3642.  Goto(PBCSDisp)
  3643.  
  3644. *SDISP
  3645. Return
  3646.  
  3647. *MAIN
  3648.  ;LoadMem(Control\MAIN.MNU)
  3649.  SetEqual(/RESP=QUITTING)
  3650.  Return
  3651.  
  3652. *bSel
  3653. LoadSub(control\macros\badsel.ctl) ;invalid selection
  3654. Goto (pbcsdisp)
  3655. ;Ret
  3656.  
  3657.  
  3658. ONPMCTLh;PowerMail Problems and Questions
  3659.  *SSdisp
  3660.    Display(ONHELP\ONPM)
  3661.  *SPrompt
  3662.    SetEqual(a=)
  3663.    Say(&15&Time Remaining: &14&%LEFT% &15&minutes.)
  3664.    MenuAsk(&3&Online Help Selection? &12&*)
  3665.  *SCheck
  3666.    BigIf (G:BYE,?:SSDISP,R:SDISP,Q:MAIN,1:FREEZE,2:PMZIP)
  3667.    Jump (bsel)
  3668.    Goto(SSDisp)
  3669.  
  3670. *FREEZE
  3671.  Display(ONHELP\PM)
  3672.  Goto(SSDisp)
  3673.  
  3674. *PMZIP
  3675.  Display(ONHELP\PMZIP)
  3676.  Goto(SSDisp)
  3677.  
  3678. *SDISP
  3679.  Return
  3680.  ;LoadMem(Control\ONHELP.CTL,Goto(SDisp))
  3681.  
  3682. *MAIN
  3683.  ;LoadMem(Control\MAIN.MNU)
  3684.  SetEqual(/RESP=QUITTING)
  3685.  Return
  3686.  
  3687. *bSel
  3688. LoadSub(control\macros\badsel.ctl) ;invalid selection
  3689. Goto (ssdisp)
  3690. ;Ret
  3691. ONREGCTL═;Registration
  3692.  *SSdisp
  3693.    Display(ONHELP\REGMENU)
  3694.  *SPrompt
  3695.    SetEqual(a=)
  3696.    Say(&15&Time Remaining: &14&%LEFT% &15&minutes.)
  3697.    MenuAsk(&3&Online Help Selection? &12&*)
  3698.  *SCheck
  3699.    BigIf (G:BYE,?:SSDISP,R:SDISP,Q:MAIN,1:WHY,2:HOWMUCH,3:HOW,4:ACCESS)
  3700.    Jump (bsel)
  3701.    Goto(SSDisp)
  3702.  
  3703. *WHY
  3704.  Display(ONHELP\REGWHY)
  3705.  Goto(SSDisp)
  3706.  
  3707. *HOWMUCH
  3708.  Display(ONHELP\REGCOST)
  3709.  Goto(SSDisp)
  3710.  
  3711. *HOW
  3712.  Display(ONHELP\REGHOW)
  3713.  Goto(SSDisp)
  3714.  
  3715. *ACCESS
  3716.  Display(ONHELP\REGSYS)
  3717.  Goto(SSDisp)
  3718.  
  3719. *SDISP
  3720.  Return
  3721.  ;LoadMem(Control\ONHELP.CTL,Goto(SDisp))
  3722.  
  3723. *MAIN
  3724.  ;LoadMem(Control\MAIN.MNU)
  3725.  SetEqual(/RESP=QUITTING)
  3726.  Return
  3727.  
  3728. *bSel
  3729. LoadSub(control\macros\badsel.ctl) ;invalid selection
  3730. Goto (ssdisp)
  3731. ;Ret
  3732. ONSOFTCTL;Software 
  3733.  *SSdisp
  3734.    Display(ONHELP\SOFTWARE)
  3735.  *SPrompt
  3736.    SetEqual(a=)
  3737.    Say(&15&Time Remaining: &14&%LEFT% &15&minutes.)
  3738.    MenuAsk(&3&Online Help Selection? &12&*)
  3739.  *SCheck
  3740.    BigIf (G:BYE,?:SSDISP,R:SDISP,Q:MAIN,1:DBLSPACE,2:STACKER,3:CACHE,4:PKZIP,5:SCAN,6:SILVERNET,7:SHARE,8:DOORS,9:DESQVIEW)
  3741.    Jump (bsel)
  3742.    Goto(SSDisp)
  3743.  
  3744. *DBLSPACE
  3745.  Display(ONHELP\DBLSPACE)
  3746.  Goto(SSDisp)
  3747.  
  3748. *STACKER
  3749.  Display(ONHELP\STACKER)
  3750.  Goto(SSDisp)
  3751.  
  3752. *CACHE
  3753.  Display(ONHELP\CACHE)
  3754.  Goto(SSDisp)
  3755.  
  3756. *PKZIP
  3757.  Display(ONHELP\PKZIP)
  3758.  Goto(SSDisp)
  3759.  
  3760. *SCAN
  3761.  Display(ONHELP\SCAN)
  3762.  Goto(SSDisp)
  3763.  
  3764. *SILVERNET
  3765.  Display(ONHELP\SILVRNET)
  3766.  Goto(SSDisp)
  3767.  
  3768. *SHARE
  3769.  Display(ONHELP\SHARE)
  3770.  Goto(SSDisp)
  3771.  
  3772. *DOORS
  3773.  Display(ONHELP\DOORS)
  3774.  Goto(SSDisp)
  3775.  
  3776. *DESQVIEW
  3777.  Display(ONHELP\DVCOMM)
  3778.  Goto(SSDisp)
  3779.  
  3780. *SDISP
  3781.  Return
  3782.  ;LoadMem(Control\ONHELP.CTL,Goto(SDisp))
  3783.  
  3784. *MAIN
  3785.  ;LoadMem(Control\MAIN.MNU)
  3786.  SetEqual(/RESP=QUITTING)
  3787.  Return
  3788.  
  3789. *bSel
  3790. LoadSub(control\macros\badsel.ctl) ;invalid selection
  3791. Goto (ssdisp)
  3792. ;Ret
  3793. ONSPECCTL_;Specific Errors
  3794.  *SSdisp
  3795.    Display(ONHELP\ONSPEC)
  3796.  *SPrompt
  3797.    SetEqual(a=)
  3798.    Say(&15&Time Remaining: &14&%LEFT% &15&minutes.)
  3799.    MenuAsk(&3&Online Help Selection? &12&*)
  3800.  *SCheck
  3801.    BigIf (G:BYE,?:SSDISP,R:SDISP,Q:MAIN,1:EVENT,2:INSHELL)
  3802.    Jump (bsel)
  3803.    Goto(SSDisp)
  3804.  
  3805. *EVENT
  3806.  Display(ONHELP\EVENT)
  3807.  Goto(SSDisp)
  3808.  
  3809. *INSHELL
  3810.  Display(ONHELP\INSHELL)
  3811.  Goto(SSDisp)
  3812.  
  3813. *SDISP
  3814.  Return
  3815.  ;LoadMem(Control\ONHELP.CTL,Goto(SDisp))
  3816.  
  3817. *MAIN
  3818.  ;LoadMem(Control\MAIN.MNU)
  3819.  SetEqual(/RESP=QUITTING)
  3820.  Return
  3821.  
  3822. *bSel
  3823. LoadSub(control\macros\badsel.ctl) ;invalid selection
  3824. Goto (ssdisp)
  3825. ;Ret
  3826. ONUPGRDCTLh;Upgrade Questions
  3827.  *SSdisp
  3828.    Display(ONHELP\ONUPGRD)
  3829.  *SPrompt
  3830.    SetEqual(a=)
  3831.    Say(&15&Time Remaining: &14&%LEFT% &15&minutes.)
  3832.    MenuAsk(&3&Online Help Selection? &12&*)
  3833.  *SCheck
  3834.    BigIf (G:BYE,?:SSDISP,R:SDISP,Q:MAIN,1:UPHIGHER,2:UPSAVE)
  3835.    Jump (bsel)
  3836.    Goto(SSDisp)
  3837.  
  3838. *UPHIGHER
  3839.  Display(ONHELP\UPHIGHER)
  3840.  Goto(SSDisp)
  3841.  
  3842. *UPSAVE
  3843.  Display(ONHELP\UPSAVE)
  3844.  Goto(SSDisp)
  3845.  
  3846. *SDISP
  3847.  Return
  3848.  ;LoadMem(Control\ONHELP.CTL,Goto(SDisp))
  3849.  
  3850. *MAIN
  3851.  ;LoadMem(Control\MAIN.MNU)
  3852.  SetEqual(/RESP=QUITTING)
  3853.  Return
  3854.  
  3855. *bSel
  3856. LoadSub(control\macros\badsel.ctl) ;invalid selection
  3857. Goto (ssdisp)
  3858. ;Ret
  3859. ONZCCTL╤*ZCSdisp
  3860.    Display(ONHELP\ZCHELP)
  3861.  *ZCPrompt
  3862.    SetEqual(a=)
  3863.    Say(&15&Time Remaining: &14&%LEFT% &15&minutes.)
  3864.    MenuAsk(&3&Online Help Selection? &12&*)
  3865.  *ZCCheck
  3866.    BigIf (G:BYE,?:ZCSDISP,R:SDISP,Q:MAIN,1:DIRS,2:VIRUS,3:SCAN)
  3867.    Jump (bsel)
  3868.    Goto(ZCSDisp)
  3869.  
  3870.  *DIRS
  3871.   Display(ONHELP\DIRS)
  3872.   Goto(ZCSDisp)
  3873.  
  3874.  *VIRUS
  3875.   Display(ONHELP\VIRUS)
  3876.   Goto(ZCSDisp)
  3877.  
  3878.  *SCAN
  3879.   Display(ONHELP\SCAN)
  3880.   Say(     &15&Download SHROM20A.ZIP? &12&[   ]&14&*)
  3881.   Back(4)
  3882.   YesNoAsk()
  3883.   If(%RESP%)=(No) then Goto(ZCSDisp)
  3884.   if (/lastmsg)=(1) then goto (conting)
  3885.   
  3886.   *AbandonConf
  3887.   LoadSub(control\onaband.ctl)
  3888.   NotIf(%RESP%)=(23) then goto(ZCSDisp) ;; if returns error
  3889.   SetEqual(r=SHROM20A.ZIP)
  3890.   LoadSub(CONTROL\ONDOWN.CTL)
  3891.   Goto(ZCSDisp)
  3892.  
  3893. *MAIN
  3894. ; LoadMem(Control\MAIN.MNU)
  3895.  SetEqual(/RESP=QUITTING)
  3896.  Return
  3897.  
  3898. *bSel
  3899. LoadSub(control\macros\badsel.ctl) ;invalid selection
  3900. Goto (zcsdisp)
  3901.  
  3902. *SDISP
  3903.  Return 
  3904.  ;LoadMem(Control\ONHELP.CTL,Goto(SDisp))
  3905. UED1CTL&loadsub(control\exitwip.ctl)
  3906. NUMBUSERS
  3907. SETEQUAL(G=%ARESP%)
  3908. If(%nv%editor%)<>() then Goto(MSGSEARCH)
  3909. SetEqual(/nveditor=)
  3910. If(/:GRAPHICS/)=(ASCII) then Goto(NoASCII)
  3911. SETEQUAL(Z=0)
  3912. IF (/GRAPHICS)=(ANSI) THEN SETEQUAL(Z=1)
  3913. SETEQUAL(C=0)
  3914. SETEQUAL(Y=1)
  3915. SETEQUAL(S=1)
  3916.  
  3917. ClearScr
  3918. SetEqual(l=1)
  3919.  
  3920. *DOUSER
  3921. Jump(ClearTop)
  3922. LOADUSER(%VAR%Y)
  3923.  
  3924. jump (mainbox)
  3925.  
  3926.  
  3927. *MainBox2
  3928. AnsiGoto(1,1)
  3929. LoadSub(control\scr%VAR%L.ctl)
  3930.  
  3931.  
  3932. *Loopy
  3933.  Jump(WhereCheck)
  3934.  MenuKey(%CRON%)
  3935.  ASCII
  3936.  If(%ARESP%)=(27) then NotIf(%BAUD%)=(LOCAL) then goto(akey)
  3937.  ;remote arrow keys have a different detection routine
  3938.   If(%ARESP%)=(27) then
  3939.   ;this is the local arrow key detection routine
  3940.   Get(%RESP%,2,1)
  3941.  
  3942.   If(%ARESP%)=([) then
  3943.    Get(%RESP%,3,1)
  3944.    If(%ARESP%)=(D) then SetEqual(/RESP=-)
  3945.    ;left arrow
  3946.    If(%ARESP%)=(C) then SetEqual(/RESP=+)
  3947.    ;right arrow
  3948.    If(%ARESP%)=(A) then SetEqual(/RESP=8)
  3949.    ;up arrow
  3950.    If(%ARESP%)=(B) then SetEqual(/RESP=2)
  3951.    ;down arrow
  3952.    endif
  3953.   endif
  3954.   *MoreChecking
  3955.   If(%ARESP%)=(P) then SetEqual(/RESP=2)
  3956.   ;down arrow
  3957.   If(%ARESP%)=(H) then SetEqual(/RESP=8)
  3958.   ;up arrow
  3959.   If(%ARESP%)=(K) then SetEqual(/RESP=+)
  3960.   ;left arrow
  3961.   If(%ARESP%)=(M) then SetEqual(/RESP=-)
  3962.   ;right arrow
  3963.   endif
  3964.  If(%ARESP%)=(0) then
  3965.   Get(%RESP%,2,1)
  3966.   If(%ARESP%)=(P) then SetEqual(/RESP=2)
  3967.   ;down arrow
  3968.   If(%ARESP%)=(H) then SetEqual(/RESP=8)
  3969.   ;up arrow
  3970.   If(%ARESP%)=(K) then SetEqual(/RESP=+)
  3971.   ;left arrow
  3972.   If(%ARESP%)=(M) then SetEqual(/RESP=-)
  3973.   ;right arrow
  3974.   endif
  3975.  If(%RESP%)=(2) then
  3976.   Jump(NormCheck)
  3977.   AddVar(%VAR%S+1=s)
  3978.   If(%VAR%S)=(6) then SetEqual(s=1)
  3979.   endif
  3980.  If(%RESP%)=(8) then
  3981.   Jump(NormCheck)
  3982.   AddVar(%VAR%S+-1=s)
  3983.   If(%VAR%S)=(0) then SetEqual(s=5)
  3984.   endif
  3985.  if(%resp%)=(/) then setequal(/resp=+)
  3986.  If(%RESP%)=(+) then
  3987.   AddVar(%VAR%L+1=l)
  3988.   If(%VAR%L)=(5) then Setequal(l=1)
  3989.   Jump(ClearTop)
  3990.   Goto(MainBox2)
  3991.   endif
  3992.  if(%RESP%)=(F) then
  3993.   Setequal(y=1)
  3994.   Jump(ClearTop)
  3995.   loaduser(%var%y)
  3996.   Goto(mainbox2)
  3997.   endif
  3998.  If(%RESP%)=(L) then
  3999.   SetEqual(y=%VAR%G)
  4000.   Jump(ClearTop)
  4001.   loaduser(%var%y)
  4002.   Goto(mainbox2)
  4003.   endif
  4004.  
  4005.  If(%RESP%)=(-) then
  4006.   AddVar(%VAR%L+-1=l)
  4007.   If(%VAR%L)=(0) then SetEqual(l=4)
  4008.   Jump(ClearTop)
  4009.   Goto(MainBox2)
  4010.   endif
  4011. If(%RESP%)=(Q) then goto (doret)
  4012. NotIf(%RESP%)=(<CR>) then Goto(Loopy)
  4013. If(%VAR%s)=(1) then
  4014.  Jump(CKSave)
  4015.  Inc(y)
  4016.  jump (cleartop)
  4017.  loaduser(%var%y)
  4018.  Jump(mainbox)
  4019.  Goto(mainbox2)
  4020.  Endif
  4021. If(%VAR%s)=(2) then 
  4022.  Jump(CKSave)
  4023.  AddVar(%VAR%Y+-1=y)
  4024.  jump (cleartop)
  4025.  loaduser(%var%y)
  4026.  Jump(mainbox)
  4027.  Goto(mainbox2)
  4028.  Endif
  4029. CmpVal(0,%VAR%Y)
  4030. IfNotTrue(SetEqual(y=1))
  4031. CmpVal(%VAR%Y,%VAR%G)
  4032. IfNotTrue(SetEqual(y=%VAR%G))
  4033. If(%VAR%s)=(5) then goto (doret)
  4034. If(%VAR%s)=(1) then Goto(DOUser)
  4035. If(%VAR%s)=(2) then Goto(DOUser)
  4036. LoadSub(control\ued.ctl)
  4037. Goto(DoUser)
  4038.  
  4039. *WhereCheck
  4040.  If(%VAR%S)=(1) then 
  4041.   AnsiGoto(34,18)
  4042.   Say($7$&12&Next User$0$*)
  4043.   endif 
  4044.  If(%VAR%S)=(2) then
  4045.   AnsiGoto(32,19)
  4046.   Say($7$&12&Previous User$0$*)
  4047.   endif
  4048.  If(%VAR%S)=(3) then
  4049.   AnsiGoto(33,20)
  4050.   Say($7$&12&Edit User$0$*)
  4051.   endif
  4052.  If(%VAR%S)=(4) then
  4053.   AnsiGoto(31,21)
  4054.   Say($7$&12&Search For User$0$*)
  4055.   endif
  4056.  If(%VAR%S)=(5) then
  4057.   AnsiGoto(29,22)
  4058.   Say($7$&12&Quit to Sysop Menu$0$*)
  4059.   endif
  4060.  
  4061.  Ret
  4062.  
  4063. *NormCheck
  4064.  If(%VAR%S)=(1) then 
  4065.   AnsiGoto(34,18)
  4066.   Say($0$&15&Next User*)
  4067.   endif 
  4068.  If(%VAR%S)=(2) then
  4069.   AnsiGoto(32,19)
  4070.   Say($0$&15&Previous User*)
  4071.   endif
  4072.  If(%VAR%S)=(3) then
  4073.   AnsiGoto(33,20)
  4074.   Say($0$&15&Edit User*)
  4075.   endif
  4076.  If(%VAR%S)=(4) then
  4077.   AnsiGoto(31,21)
  4078.   Say($0$&15&Search For User*)
  4079.   endif
  4080.  If(%VAR%S)=(5) then
  4081.   AnsiGoto(29,22)
  4082.   Say($0$&15&Quit to Sysop Menu*)
  4083.   endif
  4084.  
  4085.  Ret
  4086.  
  4087. *CKSAVE
  4088.  NOTIF (&C)=(1) THEN RET
  4089.  
  4090. AnsiGoto(34,18)
  4091. Say(&0&Next User*)
  4092. AnsiGoto(32,19)
  4093. Say(Previous User*)
  4094. AnsiGoto(33,20)
  4095. Say(Edit User*)
  4096. AnsiGoto(31,21)
  4097. Say(Search For User*)
  4098. AnsiGoto(29,22)
  4099. Say(Quit to Sysop Menu*)
  4100. AnsiGoto(3,19)
  4101. Say([UP] = Move Up*)
  4102. AnsiGoto(3,20)
  4103. Say([DN] = Move Down*)
  4104. AnsiGoto(53,18)
  4105. Say([RT] = Next Screen*)
  4106. AnsiGoto(53,19)
  4107. Say([LT] = Previous Screen*)
  4108. AnsiGoto(53,21)
  4109. Say(F = First User*)
  4110. AnsiGoto(53,22)
  4111. Say(L = Last User*)
  4112.  
  4113. AnsiGoto(3,21)
  4114. Say((ENTER) Selects*)
  4115. AnsiGoto(30,20)
  4116. yesnoask(&15&Save Changes? &14&*)
  4117. if (%name%)=(Roland Baroni) then goto (passS)
  4118. if (%RESP%)=(Yes) THEN SAVEUSER(%VAR%Y)
  4119. *passs
  4120. if (%RESP%)=(No) then SetEqual(c=0)
  4121. AnsiGoto(30,20)
  4122. say(&15&                  *)
  4123. RET
  4124.  
  4125. *ClearTop
  4126. AnsiGoto(1,1)
  4127. Eline(80)
  4128. LineFeed(1)
  4129. Eline(80)
  4130. LineFeed(1)
  4131. Eline(80)
  4132. LineFeed(1)
  4133. Eline(80)
  4134. LineFeed(1)
  4135. Eline(80)
  4136. LineFeed(1)
  4137. Eline(80)
  4138. LineFeed(1)
  4139. Eline(80)
  4140. LineFeed(1)
  4141. Eline(80)
  4142. LineFeed(1)
  4143. Eline(80)
  4144. LineFeed(1)
  4145. Eline(80)
  4146. LineFeed(1)
  4147. Eline(80)
  4148. LineFeed(1)
  4149. Eline(80)
  4150. LineFeed(1)
  4151. Eline(80)
  4152. LineFeed(1)
  4153. Eline(80)
  4154. LineFeed(1)
  4155. Eline(80)
  4156. LineFeed(1)
  4157. Eline(80)
  4158. Ret
  4159.  
  4160. *MainBox
  4161. AnsiGoto(1,17)
  4162. Say (&4&╔═══════════════════════════════════════════════════════════════════════════╗)
  4163. Say (║                                                                           ║)
  4164. Say (║                                                                           ║)
  4165. Say (║                                                                           ║)
  4166. Say (║                                                                           ║)
  4167. Say (║                                                                           ║)
  4168. Say (╚═══════════════════════════════════════════════════════════════════════════╝*)
  4169. AnsiGoto(34,18)
  4170. Say(&15&Next User*)
  4171. AnsiGoto(32,19)
  4172. Say(Previous User*)
  4173. AnsiGoto(33,20)
  4174. Say(Edit User*)
  4175. AnsiGoto(31,21)
  4176. Say(Search For User*)
  4177. AnsiGoto(29,22)
  4178. Say(Quit to Sysop Menu*)
  4179. AnsiGoto(3,19)
  4180. Say(&7&[UP] = Move Up*)
  4181. AnsiGoto(3,20)
  4182. Say([DN] = Move Down*)
  4183. AnsiGoto(3,21)
  4184. Say((ENTER) Selects*)
  4185. AnsiGoto(53,18)
  4186. Say([RT] = Next Screen*)
  4187. AnsiGoto(53,19)
  4188. Say([LT] = Previous Screen*)
  4189. AnsiGoto(53,21)
  4190. Say(F = First User*)
  4191. AnsiGoto(53,22)
  4192. Say(L = Last User*)
  4193. ;AnsiGoto(3,23)
  4194. ;Say(&14&(NUM LOCK) Must Be On*)
  4195. ret
  4196.  
  4197. *NoASCII
  4198. Say(&12&&CR&The Remote User Editor Requires ANSI Graphics to Function.&CR&)
  4199. SecPause(1)
  4200. goto (doret)
  4201.  
  4202. *MSGSEARCH
  4203.  LoadSub(control\ued.ctl)
  4204.  If(%Nv%editor%)=(-1) then goto (doret)
  4205.  Goto(DOUSER)
  4206.  
  4207. *AKEY
  4208.   ;remote arrow key detection routine
  4209.   MenuKey(%CRON%)
  4210.   If(%RESP%)=([) then
  4211.    MenuKey(%CRON%)
  4212.    If(%RESP%)=(D) then SetEqual(/RESP=-)
  4213.    ;left arrow
  4214.    If(%RESP%)=(C) then SetEqual(/RESP=+)
  4215.    ;right arrow
  4216.    If(%RESP%)=(A) then SetEqual(/RESP=8)
  4217.    ;up arrow
  4218.    If(%RESP%)=(B) then SetEqual(/RESP=2)
  4219.    ;down arrow
  4220.    endif
  4221.   Goto(MoreChecking)
  4222.  
  4223. *doret
  4224. flushout
  4225. clearscr
  4226. if (%nv%wipe%)=() then return
  4227. setnv(wipe=)
  4228. setnv(wipmode=1)
  4229. return
  4230. READLCTL'*help
  4231. display(display\help\read,/:SEC/)
  4232. goto (brmail)
  4233.  
  4234. *Repeat
  4235. SetEqual(/nvkilled=)
  4236. ;%var%i will be counter for current element in user array ^:^
  4237. SetEqual(/nvselected=1)
  4238. ;%nv%selected% is the array number of the message currently highlighted.
  4239. ;i.e. ^:1^ may hold number msg #45, but a value of 1 for %nv%selected%
  4240. ;means the line with msg #45 is currently highlighted.
  4241. SetEqual(/nvlist=NORMAL)
  4242. ;%nv%list% is the reason the following procedure is called. NORMAL is
  4243. ;just a normal list of all the inbox messages that fit on the screen.
  4244. ;REFRESH will refresh the current %VAR%I'th line.
  4245. AddVar(/:SCREENLEN/+-5=q)
  4246. If(&q)>=(19) then SetEqual(q=18) ; screen length cannot be >23 for inbox
  4247. SetEqual(/nvscreenlen=%VAR%Q)
  4248. SetEqual(/nvpage=0)
  4249. ;Current page number of inbox messages
  4250. SetEqual(i=1)
  4251. SetEqual(/nvstart=1)
  4252. ;starting i value for NORMAL display of inbox
  4253. SetEqual(/nvselected=1)
  4254. SetEqual(/nvkilled=NO)
  4255. DO
  4256.  SetEqual(y=^:I^)
  4257.  If(&y)<>() then SetEqual(/nvmax=%VAR%I)
  4258.  If(&y)=(DELETED) then SetEqual(/nvkilled=YES)
  4259.  If(&y)=() then Goto(AfterLoop)
  4260.  Inc(i)
  4261.  ;Say(Incrementing... Now %VAR%I)
  4262. LOOP
  4263. *AfterLoop
  4264. SetEqual(/nvtotmax=%NV%MAX%)
  4265. If(%NV%KILLED%)=(Yes) then 
  4266.   SetEqual(y=%NV%MAX%)
  4267.   AddVar(%VAR%Y+-1=y)
  4268.   SetEqual(/nvmax=%VAR%Y)
  4269.  endif
  4270. SetEqual(/nvkilled=)
  4271. SetEqual(i=1)
  4272. SetEqual(y=^:1^)
  4273. *Repeatme
  4274. Goto(Header)
  4275.  
  4276. *repeat2
  4277. ;If(^:I^)=() then Goto(Done)
  4278. ;SetEqual(y=^:I^)
  4279. SetEqual(w=1)
  4280.  
  4281. ;Say(Getmail(%VAR%Y,,%VAR%W,t,sh) *)
  4282.  
  4283. getmail(%VAR%Y,,%var%w,t,sh)
  4284.  
  4285. ;Say( ARESP=%ARESP% *)
  4286.  
  4287. SetEqual(r=%ARESP%)
  4288. If(%ARESP%)<>(Yes) then If(%ARESP%)<>(DELETED) then Goto(LNext)
  4289.  
  4290. ;Say(MSGNUMBER=%MSGNUMBER%)
  4291.  
  4292. If(%MSGNUMBER%)=(0) then Goto (LNext)
  4293. SetEqual(a=%MSGNUMBER%)
  4294. SetLen(a=6)
  4295. If(%NV%SCREEN%)=(REFRESH) then 
  4296.  ;Mod(%VAR%Q,/:SCREENLEN/)
  4297.  AddVar(%VAR%I+-%NV%START%=h)
  4298.  AddVar(%VAR%H+4=h)
  4299.  ;1+offset of 4=5
  4300.  AnsiGoto(1,%VAR%H)
  4301.  endif
  4302. If(%NV%SELECTED%)=(%VAR%I) then Say($7$&0&*)
  4303. If(%NV%SELECTED%)<>(%VAR%I) then Say($0$&7&*)
  4304. Say(%VAR%A *)
  4305. If(%NV%SELECTED%)=(%VAR%I) then Say($7$&4&*)
  4306. If(%NV%SELECTED%)<>(%VAR%I) then Say($0$&12&*)
  4307. If(%REPLIES%)=(REPLIES) then Say(R *)
  4308. If(%REPLIES%)<>(REPLIES) then Say(  *)
  4309. If(%MSGRCVD%)<>(RECEIVED) then Say(N *)
  4310. If(%MSGRCVD%)=(RECEIVED) then Say(  *)
  4311. If(%MSGATTACH%)=(Y) then Say(A *)
  4312. If(%MSGATTACH%)<>(Y) then Say(  *)
  4313. If(%VAR%R)=(DELETED) then Say(D *)
  4314. If(%VAR%R)<>(DELETED) then Say(  *)
  4315. If(%NV%SELECTED%)=(%VAR%I) then Say($7$&0&*)
  4316. If(%NV%SELECTED%)<>(%VAR%I) then Say($0$&7&*)
  4317. MenuEqual(a=%MSGFROM%)
  4318. SetLen(a=25)
  4319. Say(%VAR%A *)
  4320. SetEqual(a=%MSGDESC%)
  4321. SetLen(a=31)
  4322. Say(%VAR%A)
  4323. If(%NV%SCREEN%)<>(REFRESH) then Goto(LNext)
  4324. If(%NV%SCREEN%)=(REFRESH) then Ret
  4325.  
  4326. *Done
  4327.  If(%NV%SCREEN%)<>(REFRESH) then
  4328.   ;SetEqual(i=%NV%SELECTED%)
  4329.   Say($0$&12&UP&15&/&12&DN &15&arrows move, &12&SPACE&15& = next page, &12&- &15&= previous page, &12&ENTER&15& selects, &12&Q&15& quits)
  4330.   SetEqual(y=^:I^)
  4331.   AddVar(%VAR%I+-1=i)
  4332.   SetEqual(/nvmax=%VAR%I)
  4333.   endif
  4334.  ;If(%NV%SCREEN%)=(NORMAL) then SetEqual(i=%NV%MAX%)
  4335.  *GetKey
  4336.  LoadSub(control\macros\checkkey.ctl)
  4337.  ;gets key from user and sets %RESP% appropriately if arrow key
  4338.  ;first message option is on line 4. (Current Option+3=y coord)
  4339.  If(%RESP%)=(Q) then Goto(Qdisp)
  4340.  if(%RESP%)=() then goto(Qdisp)
  4341.  If(%RESP%)=(?) then Goto(OlHelp)
  4342.  If(%RESP%)=( ) then
  4343.    SetEqual(/nvme=%VAR%H)
  4344.    AddVar(%NV%TOTMAX%+-%NV%START%=h)
  4345.    Inc(h)  ; needed to fix one message on last page bug
  4346.    If(&h)<(%NV%SCREENLEN%) then Goto(LastPage)
  4347.    AddVar(%NV%START%+%NV%SCREENLEN%=h)
  4348.    AddVar(%VAR%H+-1=h)
  4349.    SetEqual(/nvstart=%VAR%H)
  4350.    AddVar(%NV%SELECTED%+%NV%SCREENLEN%=h)
  4351.    AddVar(%VAR%H+-1=h)
  4352.    SetEqual(/nvselected=%VAR%H)
  4353.    If(%NV%SELECTED%)>(%NV%TOTMAX%) then SetEqual(/nvselected=%NV%TOTMAX%)
  4354.    SetEqual(h=%NV%ME%)
  4355.    SetEqual(/nvme=)
  4356.    ;SetEqual(/nvselected=%VAR%I)
  4357.    ;SetEqual(/nvstart=%VAR%I)
  4358.    SetEqual(i=%NV%START%)
  4359.    Goto(Header)
  4360.   Endif
  4361.  If(%RESP%)=(-) then
  4362.    SetEqual(/nvme=%VAR%H)
  4363.    If(%NV%START%)<=(%NV%SCREENLEN%) then Goto(FirstPage)
  4364.    AddVar(%NV%START%+-%NV%SCREENLEN%=h)
  4365.    Inc(h)
  4366.    SetEqual(/nvstart=%VAR%H)
  4367.    AddVar(%NV%SELECTED%+-%NV%SCREENLEN%=h)
  4368.    Inc(h)
  4369.    SetEqual(/nvselected=%VAR%H)
  4370.    SetEqual(h=%NV%ME%)
  4371.    SetEqual(/nvme=)
  4372.    ;SetEqual(/nvselected=%VAR%I)
  4373.    SetEqual(/nvscreen=NORMAL)
  4374.    SetEqual(i=%NV%START%)
  4375.    Goto(Header)
  4376.   Endif
  4377.  
  4378.  If(%RESP%)=(<CR>) then Goto(Done2)  
  4379.  If(%RESP%)=(2) then Jump(DownArrow)          ; down arrow pressed
  4380.  If(%RESP%)=(8) then                          ; up arrow pressed
  4381.   SetEqual(/nvtemp=%NV%SELECTED%)
  4382.   If(%NV%SELECTED%)<=(%NV%START%) then Goto(QuickFix)
  4383.   SetEqual(i=%NV%SELECTED%)
  4384.   AddVar(%VAR%I+-1=i)
  4385.   SetEqual(/nvselected=%VAR%I)
  4386.   SetEqual(/nvscreen=REFRESH)  
  4387.   SetEqual(i=%NV%TEMP%)
  4388.   AddVar(%VAR%I+3=q) 
  4389.   setequal(y=^:I^)
  4390.   Jump(Repeat2) 
  4391.   SetEqual(i=%NV%SELECTED%)
  4392.   AddVar(%VAR%I+3=q)
  4393.   setequal(y=^:I^)
  4394.   Jump(Repeat2)
  4395.   Goto(Done)
  4396.  endif
  4397.  If(%RESP%)=(<CR>) then Goto(Done2)  
  4398.  Ascii(%RESP%)
  4399.  If(%ARESP%)=(13) then Goto(Done2)
  4400. Goto(GetKey)
  4401.   
  4402.  *Done2
  4403.  ;Enter
  4404.  SetEqual(i=%NV%SELECTED%)
  4405.  SetEqual(/nvi=%VAR%I)
  4406.  SetEqual(i=^:I^)
  4407.  getmail(%var%i,,%var%w)
  4408.  Say($0$*)
  4409.  Goto(AgMail)
  4410.  Return
  4411.  
  4412. *aGMail
  4413. SetEqual(/nvstatus=)
  4414. LoadSub(control\macros\showmsg.ctl)
  4415. If(%NV%STATUS%)=(INBOX) then goto(inbox)
  4416. If(%NV%STATUS%)=(INV2) then Goto(inv2)
  4417. If(%NV%STATUS%)=(REPEAT) then Goto(repeat)
  4418. If(%NV%STATUS%)=(HEADER) then Goto(header)
  4419. If(%NV%STATUS%)=(QDISP) then Goto(qdisp)
  4420. Goto(repeat2)  ; *** IS THIS THE RIGHT LABEL? ***
  4421.  
  4422. *lnext
  4423. inc(i)
  4424. setequal(y=^:I^)
  4425. if (^:I^)=() then goto (done)
  4426. SetEqual(/nvme=%VAR%H)
  4427. AddVar(%VAR%I+-%NV%START%=h)
  4428. Inc(h)
  4429. if (&h)<(%nv%screenlen%) then 
  4430.   SetEqual(h=%NV%ME%)
  4431.   SetEqual(/nvme=)
  4432.   goto(repeat2)
  4433.  endif
  4434. If(&h)<(%NV%SCREENLEN%) then Say($0$)
  4435. if (&h)>=(%nv%screenlen%) then say($0$&14&[MORE])
  4436. SetEqual(h=%NV%ME%)
  4437. SetEqual(/nvme=)
  4438. goto(done)
  4439. if (^:I^)=(DELETED) then goto(lnext)
  4440. goto (repeat2)
  4441.  
  4442. *qdisp
  4443. Say($0$)
  4444. ;linefeed(1)
  4445. if (&r)=(10) then goto (endmr)
  4446. SetEqual(y=^:1^)
  4447. AddVar(%VAR%Y+-2=y)
  4448. SetHigh(%VAR%Y)
  4449. Return
  4450.  
  4451. *smore
  4452. setequal(x=1)
  4453. setequal(s=10)
  4454.  
  4455. *SetVars
  4456. SetEqual(i=^:I^)
  4457. ;getmail(%var%i,,%var%w)
  4458. Say($0$*)
  4459. Goto(AgMail)
  4460.  
  4461. *inv2
  4462. if (&s)=(10) then goto (abb)
  4463. say(&CR&&12&Invalid selection! Please try again...)
  4464. secpause(1)
  4465. flushout
  4466. if (&s)=(5) then goto (reading)
  4467. *abb
  4468. if (&z)=(0) then goto (brmail)
  4469. goto (endmr)
  4470.  
  4471. *firstmsg
  4472. Say(&CR&&12&This is the first message in your INBOX&CR&)
  4473. SecPause(1)
  4474. SetEqual(i=%NV%I%)
  4475. SetEqual(/nvselected=%VAR%I)
  4476. Goto(AGMail)
  4477.  
  4478. *lastmsg
  4479. Say(&CR&&12&This is the last message in your INBOX&CR&)
  4480. SecPause(1)
  4481. SetEqual(i=%NV%I%)
  4482. SetEqual(/nvselected=%VAR%I)
  4483. Goto(AGMail)
  4484.  
  4485. *endmr
  4486. say(&11&&CR& ══ &14&No more mail found for you to read, %FNAME%&11& ══&CR&)
  4487. enter
  4488. Return
  4489.  
  4490. *getHiLow
  4491. himsg
  4492. setequal(f=%ARESP%)
  4493. setnv(f=%aresP%)
  4494. lowmsg
  4495. setequal(n=%ARESP%)
  4496. setnv(n=%aresp%)
  4497. ret
  4498.  
  4499. *Dequeue
  4500. DeQueue(q)
  4501. SetEqual(/RESP=%ARESP%)
  4502. Len(%VAR%Q)
  4503. SetEqual(l=%VAR%Q)
  4504. If(%VAR%L)=(0) then Goto(Disp2)
  4505. Goto(Process)
  4506.  
  4507. *enqueue
  4508. LoadSub(CONTROL\MACROS\enqueue.CTL)
  4509. Goto(dequeue)
  4510.  
  4511. *QuickFix
  4512.    AddVar(%NV%START%+-1=i)
  4513.    If(&i)<(1) then 
  4514.       SetEqual(i=%NV%TOTMAX%)
  4515.       SetEqual(/nvselected=%VAR%I)
  4516.       Inc(i)
  4517.       AddVar(%VAR%I+-%NV%SCREENLEN%=i)
  4518.       Inc(i)
  4519.       If(&i)<(1) then SetEqual(i=1)
  4520.       SetEqual(/nvstart=%VAR%I)
  4521.       SetEqual(/nvscreen=NORMAL)
  4522.       Goto(Header)
  4523.     endif
  4524.    SetEqual(/nvstart=%VAR%I)
  4525.    
  4526.    SetEqual(/nvscreen=NORMAL)
  4527.    SetEqual(/nvselected=%VAR%I)
  4528.    Goto(Header)
  4529.    
  4530. *CalcOffset
  4531.   SetEqual(/nvme2=%VAR%U)
  4532.   MultVar(%NV%SCREENLEN%*%NV%PAGE%=u)
  4533.   AddVar(%VAR%I+%VAR%U=i)
  4534.   SetEqual(u=%NV%ME2%)
  4535.   SetEqual(/nvme2=)
  4536.   Ret
  4537.  
  4538. *Inbox
  4539. SetEqual(r=10)
  4540. SetEqual(y=^:1^)
  4541. AddVar(%VAR%Y+-1=y)
  4542. SetHigh(%VAR%Y)
  4543. Inc(y)
  4544. himsg(/:LASTMSG/)
  4545. SetEqual(f=%ARESP%)
  4546. setnv(f=%aresp%)
  4547. lowmsg(/:lastmsg/)
  4548. SetEqual(n=%ARESP%)
  4549. setnv(n=%aresp%)
  4550. SetEqual(i=%NV%START%)
  4551. setequal(/nvsnsearch=1)
  4552. SetEqual(/nvscreen=NORMAL)
  4553. Goto(Header)
  4554.  
  4555. *Header
  4556.     SetEqual(/nvscreen=NORMAL)
  4557.     setequal(y=^:I^)
  4558.     ClearScr
  4559.     Say($0$&14&D = Deleted Message   A = File Attached   N = New Message    R = Replies)
  4560.     Say(&CR&&15& #             FROM                      REGARDING)
  4561.     Goto(Repeat2)
  4562.  
  4563. *DownArrow
  4564.  ; Say(DOWN ARROW PRESSED!)
  4565.   
  4566.   SetEqual(/nvtemp=%NV%SELECTED%)
  4567.   ;NotIf(%NV%SELECTED%)<(%NV%MAX%) then SetEqual(/nvselected=0)
  4568.   SetEqual(i=%NV%SELECTED%)
  4569.  
  4570.   *Incme
  4571.   Inc(i)
  4572.   ;Say(I is now %VAR%I)
  4573.   ;Enter
  4574.   If(^:I^)=(DELETED) then Goto(Incme)
  4575.   
  4576.   If(&i)>(%NV%MAX%) then
  4577.     If(&i)>(%NV%TOTMAX%) then
  4578.       SetEqual(i=1)
  4579.       SetEqual(/nvstart=1)
  4580.       SetEqual(/nvselected=1)
  4581.       SetEqual(/nvscreen=NORMAL)
  4582.       Goto(Header)
  4583.      endif
  4584.     If(&i)>(%NV%TOTMAX%) then Goto(GetKey)
  4585.     SetEqual(/nvselected=%VAR%I)
  4586. ;    Say(FINAL I=%VAR%I)
  4587. ;    Enter
  4588.     AddVar(%VAR%I+-%NV%SCREENLEN%=i)
  4589.     Inc(i)
  4590.     Inc(i)
  4591.     SetEqual(/nvstart=%VAR%I)
  4592. ;    Say(START I=%VAR%I)
  4593. ;    Say(NVSCREENLEN=%NV%SCREENLEN%)
  4594. ;    Enter
  4595.     Goto(Header)
  4596.    Endif
  4597.  
  4598.   SetEqual(/nvselected=%VAR%I)
  4599.   SetEqual(/nvscreen=REFRESH)  
  4600.   SetEqual(i=%NV%TEMP%)
  4601.   AddVar(%VAR%I+4=q)
  4602.   setequal(y=^:I^)
  4603.   Jump(Repeat2) 
  4604.   SetEqual(i=%NV%SELECTED%)
  4605.   AddVar(%VAR%I+4=q)
  4606.   setequal(y=^:I^)
  4607.   Jump(Repeat2)
  4608.   Goto(Done)
  4609.   Ret
  4610.  
  4611. *LastPage
  4612. AddVar(%NV%SCREENLEN%+3=h)
  4613. AnsiGoto(1,%VAR%H)
  4614. Say($0$&12&This is the last page of INBOX messages)
  4615. SecPause(1)
  4616. AnsiGoto(1,%VAR%H)
  4617. ELine(55)
  4618. SetEqual(h=%NV%ME%)
  4619. SetEqual(/nvme=)
  4620. Goto(GetKey)
  4621.  
  4622. *FirstPage
  4623. AddVar(%NV%SCREENLEN%+3=h)
  4624. ;AnsiGoto(1,%VAR%H)
  4625. ;Say($0$&12&This is the first page of INBOX messages)
  4626. ;SecPause(1)
  4627. ;AnsiGoto(1,%VAR%H)
  4628. ;ELine(55)
  4629. SetEqual(h=%NV%ME%)
  4630. SetEqual(/nvme=)
  4631. SetEqual(/nvstart=1)
  4632. SetEqual(/nvselected=1)
  4633. SetEqual(i=1)
  4634. Goto(Header)
  4635. ;SetEqual(/nvselected=%VAR%I)
  4636. ;Goto(GetKey)
  4637.  
  4638. *OlHelp
  4639.  SetNv(atprompt=Yes)
  4640.  SetNv(helpoption=141)
  4641.  LoadSub(olhelp\olhelp.ctl,goto(implementoption))
  4642.  SetEqual(i=%NV%START%)
  4643.  Goto(Header)
  4644. VIEWBCTL¥if (%nv%wipmode%)=(1) then goto (wip)
  4645. say(&CR&&3&Would you like to view the &11&bulletins menu&3&? &9&[   ]&14&*)
  4646. back(4)
  4647. yesnoask(*)
  4648. if (%RESP%)=(No) then loadmem(control\main.mnu)
  4649. loadmem(control\bullet.mnu)
  4650.  
  4651. *wip
  4652.  
  4653.    writeln (Yes/No Question: Would you like to view the bulletins menu?)
  4654.    writeln()
  4655.  
  4656.    setequal(c=13~Would you like to view the bulletins menu?~Yes/No Question~2~)
  4657.    jump (wipc)
  4658.    *gi0
  4659.    comlineinput(180,l)
  4660.    if (%aresp%)=(24) then
  4661.      log(<<,User did not press a key for a while. Timeout)
  4662.      display(display\timeout)
  4663.      quitbbs
  4664.    endif
  4665.    *tryr
  4666.    setequal(r=%resp%)
  4667.    if (%aresp%)=(N) then loadmem(control\main.mnu)
  4668.    if (%aresp%)=(n) then loadmem(control\main.mnu)
  4669.    ascii
  4670.    if (%aresp%)=(21) then goto (WipNotFound)
  4671.    if (%aresp%)=(6) then
  4672.      len(%var%r)
  4673.      if (%aresp%)=(1) then goto (gi0)
  4674.      get(&r,2,1000)
  4675.      setequal(/resp=%aresp%)
  4676.      goto (tryr)
  4677.    endif
  4678.    if (%resp%)<>(2) then loadmem(control\main.mnu)
  4679.    loadmem(control\bullet.mnu)
  4680.  
  4681. *GCHAR
  4682. COMPRINT(%NV%TEXT%)
  4683. SETEQUAL(A=0)
  4684. DO
  4685. COMKEY
  4686. ASCII
  4687. IF(%ARESP%)=(21) THEN GOTO(GCHAR)
  4688. INC(A)
  4689. IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET
  4690. IF(%ARESP%)=(&B) THEN RET
  4691. IF(&A)>(45) THEN RET
  4692. IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%)
  4693. DELAY18TH(2)
  4694. LOOP
  4695. *WIPC
  4696. LOCALKEY(1)
  4697. IFNOTTRUE(GOTO(NOLKEY))
  4698. SYSKEYCHECK
  4699. SETEQUAL(/RESP=)
  4700. SETEQUAL(/RESP=)
  4701. *NOLKEY
  4702. CCARRIER
  4703. IF(%ARESP%)=(0) THEN GOTO (NOC0)
  4704. CHECKSUM(%VAR%C)
  4705. SETEQUAL(B=6)
  4706. SETNV(TEXT=$%ARESP%%VAR%C%C%13%)
  4707. SETNV(PBACK=)
  4708. JUMP(GCHAR)
  4709. IF(%ARESP%)<>(6) THEN JUMP(GCHAR)
  4710. SETEQUAL(/IBUFF=%NV%PBACK%)
  4711. LEN(%NV%PBACK%)
  4712. SETEQUAL(/IBUFF0=%ARESP%)
  4713. RET
  4714. *NOC0
  4715. log(<<,Carrier lost.)
  4716. quitbbs
  4717. BULL-RCTLesay(!|J10|n2000|M08|fZKQO|b284MXCJU280O0002X000|c0F|=001EKF01)
  4718. say(!|W00|LA2QMA2QM|c48|Y03000909|@0016%nv%btitle%|fZKQO)
  4719. say(!|Y03000609|1B00000201EY016I000F4G0700020G07000000)
  4720. say(!|1B00000201EY016I000F4G0700020G07000000)
  4721. say(!|1U1UKQ8SNS2B00<>Stop<>S)
  4722. say(!|1B00000201EY016I000F4G0700020G07000000)
  4723. say(!|1B00000201EY016I000F4G0700020G07000000)
  4724. say(!|1U9GKQGINS2600<>NonStop<>NS)
  4725. say(!|1B00000201EY016I000F4G0700020G07000000)
  4726. say(!|1UH2KSPQNU1V20<>Continue<>C|k00|Y0000013T|@28QMR)
  4727. say(!|@00P6PBRIP2=BETA=Robert Spier|#|#|#)
  4728. view(%nv%bname%)
  4729. enter
  4730. say(!|e|*|#|#|#)
  4731. enter
  4732. say(Thing shown)
  4733. return
  4734. SECINFOCTL= nicedate(/:last/)
  4735.  setnv(lastcall=%aresp%)
  4736.  nicedate(/:first/)
  4737.  setnv(firstcall=%aresp%)
  4738.  nicedate(/:lastchk/)
  4739.  setnv(newcheck=%aresp%)
  4740.  if (/:lastdown/)>(%maxfarea%) then setequal(/lastdown=1)
  4741.  selfarea(/:lastdown/)
  4742.  ClearScr
  4743.  NiceDate(/:LAST/)
  4744. setequal(^53=%ARESP%)
  4745.  If (/LASTCHK)=(00-00-00) then setequal(^58=N/A)
  4746.  if (/LASTCHK)=(00-00-00) then goto (bakn)
  4747.  NiceDate(/:LASTCHK/)
  4748.  setequal (^58=%ARESP%)
  4749.  
  4750. *BAKN
  4751.  if (%nv%wipmode%)=(1) then goto (wipi)
  4752.  Display (display\sec/:SEC/)
  4753.  Say(&7&            Time Limit              : &12&%LIMIT% Minutes)
  4754.  Say(&7&            Graphics Mode           : &12&%GRAPHICS%)
  4755.  Say(&7&            Last New Files Check    : &12&%nv%newcheck%)
  4756.  Say(&7&            First Call to BBS       : &12&%nv%firstcall%)
  4757.  Say(&7&            Most Recent Call to BBS : &12&%nv%lastcall%)
  4758.  Say(&7&            Number of Times on BBS  : &12&/:TIMESON/)
  4759.  Say()
  4760.  enter
  4761.  
  4762. ClearScr
  4763.  
  4764. *OutOfHere
  4765. setnv(firstcall=)
  4766. setnv(lastcall=)
  4767. setnv(newcheck=)
  4768. if (%nv%fromopen%)=(1) then goto (oback)
  4769. Return
  4770. *oback
  4771. setnv(fromopen=)
  4772. LoadMem(control\mscan.ctl)
  4773.  
  4774. *wipi
  4775. inpopen(display\sec/:sec/.no)
  4776. *stl0
  4777. fendif(done0)
  4778. inpread
  4779. writeln(%aresp%)
  4780. goto (stl0)
  4781. *done0
  4782. inpclose
  4783.  
  4784. setnv(wippath=%pbtemp%)
  4785. kill(%nv%wippath%secinfo.wip)
  4786. loadsub(control\ewipscr.ctl,setnv(wipf=secinfo))
  4787. goto(outOfHere)
  4788. TESTCTL╩fdate(wip\resource\nuiq1.ico)
  4789. say(date %aresp%!)
  4790. getnumbers(%aresp%)
  4791. say(w/o #s:%aresp%)
  4792. ftime(wip\resource\nuiq1.ico)
  4793. say(time %aresp%!)
  4794. getnumbers(%aresp%)
  4795. say(w/o #s:%aresp%)
  4796. enter
  4797. quitbbs
  4798. ZIPVIEWCTL$say(&11&Viewing Archive '%var%e' ────────────────────────────────────────────────)
  4799. *EXLP
  4800.  Say(&CR&&7& Length  Method   Size  Ratio   Date    Time   CRC-32  Attr  Name&11&)
  4801.  InpRead
  4802.  Say(──────────────────────────────────────────────────────────────────&15&)
  4803.  
  4804. setequal(l=0)
  4805. setequal(p=5)
  4806. resetpause
  4807. ;spause(5)
  4808.  
  4809. DO
  4810.  fEndIf(eloop)
  4811.  InpRead
  4812.  SetEqual(h=%ARESP%)
  4813.  Get (%ARESP%,1,3)
  4814.  If (%ARESP%)=( --) then goto (elp)
  4815.  inc(l)
  4816.  Say(%var%h)
  4817.  inc(p)
  4818.  if (&p)=(/:screenlen/) then jump (pause)
  4819. LOOP
  4820.  
  4821. *ELP
  4822.  InpRead
  4823.  Say(&11&──────────────────────────────────────────────────────────────────)
  4824.  inc(p)
  4825.  if (%var%p)=>(/:screenlen/) then jump (pause)
  4826.  get (%aresp%,1,50)
  4827.  Say(&12&%ARESP%)
  4828.  InpClose
  4829.  inc(p)
  4830.  say (&CR&&14&  %var%l File(s) in archive)
  4831.  inc(p)
  4832.  if (%var%p)=>(/:screenlen/) then jump (pause)
  4833.  
  4834. *ELOOP
  4835.  MenuAsk (%LEN%1%&CR&&3&Would you like to &11&(&7&R&11&)ead Textfile, (&7&D&11&)ownload File, (&7&L)&11&ist, (&7&Q&11&)uit?&14& *)
  4836.  if (%resp%)=() then goto (quit)
  4837.  BigIf (d:download,r:read,q:quit,l:list)
  4838.  Goto (eloop)
  4839.  
  4840. *LIST
  4841.  InpClose
  4842.  InpOpen(%pbtemp%zipinfo.txt)
  4843.  linefeed(1)
  4844.  
  4845. DO
  4846.  InpRead
  4847.  Get (%ARESP%,1,7)
  4848.  NotIf (%ARESP%)=() then if (%ARESP%)=( Length) then goto (exlp)
  4849. EofLoop
  4850.  
  4851. *QUIT
  4852.  InpClose
  4853.  SelFArea (/:lastdown/)
  4854.  if (%nv%wipe%)=() then return
  4855.  setnv(wipe=)
  4856.  setnv(wipmode=1)
  4857.  Return
  4858.  
  4859. *READ
  4860.  Say(&CR&&3&Please enter the name of the file to read&12&: &14&(            )&15&*)
  4861.  Back(13)
  4862.  MenuAsk(%CRON%%LEN%12%*)
  4863.  if (%RESP%)=(<CR>) then goto (eloop)
  4864.  Say(&CR&&11&Retrieving &7&%RESP%&11&, Please Wait!&7&)
  4865.  mkdir(%PBTEMP%ZVTEMP)
  4866.  KILL(%PBTEMP%ZVTEMP\*.*)
  4867.  Exec(pkunzip %FILPATH%%var%e %RESP% %pbtemp%zvtemp\ >nul,)
  4868.  View (%pbtemp%zvtemp\%RESP%)
  4869.  kill(%pbtemp%zvtemp\*.*)
  4870.  Enter
  4871.  Goto (eloop)
  4872.  
  4873. *DOWNLOAD
  4874.  Say(&3&&CR&Please enter the name of the file to download&12&: &14&(            )&15&*)
  4875.  Back(13)
  4876.  MenuAsk(%CRON%%LEN%12%*)
  4877.  if (%RESP%)=(<CR>) then goto (eloop)
  4878.  Say(&CR&&11&Retrieving &7&%RESP%&11&, Please Wait!&7&)
  4879.  mkdir(%PBTEMP%ZVTEMP)
  4880.  KILL(%PBTEMP%ZVTEMP\*.*)
  4881.  Exec(pkunzip %FILPATH%%var%e %RESP% %pbtemp%zvtemp\ >nul,)
  4882.  SetEqual(d=%RESP%)
  4883.  Seek(%pbtemp%zvtemp\%RESP%)
  4884.  IfNotTrue (goto (eloop))
  4885.  
  4886. *PICKP
  4887.  Display (Display\DN-PROTS)
  4888.  MenuAsk (%MIN%1%&3&Which transfer protocol would you like to use?&11&(or Q to Quit)&12&: &15&*)
  4889.  Find(%RESP%,\)      ;make sure they didnt stick a backslash in there
  4890.  NotIf (%ARESP%)=(0) Then Goto (eloop)
  4891.  BigIf(q:eloop)
  4892.  SetEqual(b=%RESP%)
  4893.  Seek(protocol\%var%b-VD.BT)    ;check to see If protocol exists..
  4894.  IfNotTrue(Goto (pickp))
  4895.  Len(%var%b)
  4896.  NotIf (%ARESP%)=(1) then goto (nobat)
  4897.  Say(&CR&&3&       Would you like to download this file? &9&[   ]&14&*)
  4898.  Back(4)
  4899.  YesNoAsk(*)
  4900.  If (%RESP%)=(No) Then Goto (eloop)
  4901.  Say(&CR&&11&We're sending the file you requested. Please get ready to receive it now.)
  4902.  If (%LOCAL%)=(TRUE) Then Goto (eloop)
  4903.  FixFile(protocol\%var%b-vd.bt,protocol\%var%b-vd.bat)
  4904.  InitClock
  4905.  Exec(protocol\%var%b-vd.BAT│)
  4906.  Kill(protocol\%var%b-vd.bat)
  4907.  If (%LOCAL%)=(FALSE) Then toglocal
  4908.  NotIf (%ARESP%)=(0) Then Goto (nsc)
  4909.  XferTime
  4910.  SetEqual(e=%ARESP%)
  4911.  Size(%pbtemp%zvtemp\%var%d)
  4912.  MultVar(%XMIN%*60=o)
  4913.  DivVar(%ARESP%/%var%o=g)         ;calculate CPS rate
  4914.  CnvtK(%ARESP%)
  4915.  AddVar(%ARESP%+/:KDOWN/=o)
  4916.  SetEqual(/KDOWN=%var%o)
  4917.  Say(%BEEP%*)
  4918.  Log(--,%var%d Downloaded from Zip:%var%e.)
  4919.  Log(--,Rate: %var%g CPS)
  4920.  AppendTo(logs\DOWNLOAD.%NODE%,%var%d downloaded by %NAME% at %TIME% on %DATE%.)
  4921.  SetEqual(a=/:DOWNLOADS/)
  4922.  inc(a)
  4923.  SetEqual(/DOWNLOADS=%var%a)
  4924.  If (%LOCAL%)=(TRUE) Then toglocal
  4925.  Display (Display\SUCCESS)
  4926.  kill(%pbtemp%zvtemp\*.*)
  4927.  Enter
  4928.  Goto (eloop)
  4929.  
  4930. *NOBAT
  4931.  Say(&CR&&15&No batch protocols allowed for transfering this file.&CR&)
  4932.  Goto (pickp)
  4933.  
  4934. *nsc
  4935. toglocal
  4936. goto (eloop)
  4937.  
  4938. *pause
  4939. setequal(p=1)
  4940. pauseprompt
  4941. if (%ARESP%)=(STOP) then goto (elp)
  4942. ret
  4943. NOTFOUNDCTLh     seek(pigsfly7.zoo)
  4944.  NotIf(%HANDLE%)=(Yes) then badseek(%NAME%)
  4945.  iftrue (loadmem(control\badname.ctl))
  4946.  if (%graphics%)=(WIP) then goto (WipNotFound)
  4947.  beep(1)
  4948.  Say(&CR&We couldn't find "%NAME%" in our user file.)
  4949.  Say(&CR&&15&Did you spell your name correctly? *)
  4950.  jump (YesNo)
  4951.  If (%RESP%)=(No) then loadmem(control\open.ctl,Goto (TryAgain))
  4952.  Display (display\NONMEMB)
  4953.  Say (&CR&&12&You have specified &15&%NAME%&12& as your name. This will be used to)
  4954.  Say (create a new account for you if you answer yes to the following question.)
  4955.  Say (&CR&&15&Would you like to log on to %BBS% as a new user? &14&*)
  4956.  jump (YesNo)
  4957.  If (%RESP%)=(No) then loadmem (control\refused.ctl)
  4958.  LoadMem (control\newuser.ctl)
  4959.  
  4960. *WipNotFound
  4961.    writeln(We could not find "%NAME%" in our user file.  Log on as a new user?)
  4962.    setequal(c=13~We could not find "%NAME%" in our user file.  Log on as a new user?~Account Not Found~2~)
  4963.    jump (wipc)
  4964.    *gi0
  4965.    comlineinput(180,l)
  4966.    if (%aresp%)=(24) then
  4967.      log(<<,User did not press a key for a while. Timeout)
  4968.      display(display\timeout)
  4969.      quitbbs
  4970.    endif
  4971.    *tryr
  4972.    setequal(r=%resp%)
  4973.    ascii
  4974.    if (%aresp%)=(21) then goto (WipNotFound)
  4975.    if (%aresp%)=(6) then
  4976.      len(%var%r)
  4977.      if (%aresp%)=(1) then goto (gi0)
  4978.      get(&r,2,1000)
  4979.      setequal(/resp=%aresp%)
  4980.      goto (tryr)
  4981.    endif
  4982.    ;if (%resp%)<>(2) then loadmem(control\wipwelc.ctl,goto(ExecScreen))
  4983.    if (%resp%)<>(2) then goto (wipback3)
  4984.    loadsub(control\ewipscr.ctl,setnv(wipf=nonmemb))
  4985.    loadmem(control\newuWip.ctl)
  4986.  
  4987. *wipback3
  4988. loadsub(control\wipwelc.ctl,goto(execScreen))
  4989. loadmem(control\open.ctl,goto(cont))
  4990.  
  4991. *GCHAR
  4992. COMPRINT(%NV%TEXT%)
  4993. SETEQUAL(A=0)
  4994. DO
  4995. COMKEY
  4996. ASCII
  4997. IF(%ARESP%)=(21) THEN GOTO(GCHAR)
  4998. INC(A)
  4999. IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET
  5000. IF(%ARESP%)=(&B) THEN RET
  5001. IF(&A)>(45) THEN RET
  5002. IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%)
  5003. DELAY18TH(2)
  5004. LOOP
  5005. *WIPC
  5006. LOCALKEY(1)
  5007. IFNOTTRUE(GOTO(NOLKEY))
  5008. SYSKEYCHECK
  5009. SETEQUAL(/RESP=)
  5010. SETEQUAL(/RESP=)
  5011. *NOLKEY
  5012. CCARRIER
  5013. IF(%ARESP%)=(0) THEN GOTO (NOC0)
  5014. CHECKSUM(%VAR%C)
  5015. SETEQUAL(B=6)
  5016. SETNV(TEXT=$%ARESP%%VAR%C%C%13%)
  5017. SETNV(PBACK=)
  5018. JUMP(GCHAR)
  5019. IF(%ARESP%)<>(6) THEN JUMP(GCHAR)
  5020. SETEQUAL(/IBUFF=%NV%PBACK%)
  5021. LEN(%NV%PBACK%)
  5022. SETEQUAL(/IBUFF0=%ARESP%)
  5023. RET
  5024. *NOC0
  5025. log(<<,Carrier lost.)
  5026. quitbbs
  5027.  
  5028. *yesno
  5029.  Say(&15&(&12&Y&15&/&12&N&15&)&14&*)
  5030.  Back(4)
  5031.  YesNoAsk(*)
  5032. ret
  5033. OKBOXCTLçjump (wipc)
  5034. setequal(c=0A~)
  5035. jump (wipc)
  5036. return
  5037.  
  5038. *okbox0
  5039. Jump (wipc)
  5040. comlineinput(180,l)
  5041. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  5042. if (%resp%)=() then goto (okbox)
  5043. ret
  5044.  
  5045.  
  5046. *GCHAR
  5047. COMPRINT(%NV%TEXT%)
  5048. SETEQUAL(A=0)
  5049. DO
  5050. COMKEY
  5051. ASCII
  5052. IF(%ARESP%)=(21) THEN GOTO(GCHAR)
  5053. INC(A)
  5054. IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET
  5055. IF(%ARESP%)=(&B) THEN RET
  5056. IF(&A)>(50) THEN RET
  5057. IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%)
  5058. DELAY18TH(2)
  5059. LOOP
  5060. *WIPC
  5061. LOCALKEY(1)
  5062. IFNOTTRUE(GOTO(NOLKEY))
  5063. SYSKEYCHECK
  5064. SETEQUAL(/RESP=)
  5065. SETEQUAL(/RESP=)
  5066. *NOLKEY
  5067. CCARRIER
  5068. IF(%ARESP%)=(0) THEN GOTO (NOC0)
  5069. CHECKSUM(%VAR%C)
  5070. SETEQUAL(B=6)
  5071. SETNV(TEXT=$%ARESP%%VAR%C%C%13%)
  5072. SETNV(PBACK=)
  5073. JUMP(GCHAR)
  5074. IF(%ARESP%)<>(6) THEN JUMP(GCHAR)
  5075. setequal(c=%aresp%)
  5076. SETEQUAL(/IBUFF=%NV%PBACK%)
  5077. LEN(%NV%PBACK%)
  5078. SETEQUAL(/IBUFF0=%ARESP%)
  5079. SETEQUAL(/ARESP=%VAR%C)
  5080. RET
  5081. *NOC0
  5082. log(<<,Carrier lost.)
  5083. quitbbs
  5084. SUBREADCTL InpOpen (sub.bbs)
  5085.  
  5086. *STRSUB
  5087.  fEndIF(done)
  5088.  InpRead
  5089.  SetEqual(b=%ARESP%)
  5090.  SetEqual(a=%var%b)
  5091.  Len(%var%a)
  5092.  If (%ARESP%)=(0) then Goto (strsub)
  5093.  Get(&a,1,1)
  5094.  If (%ARESP%)=(;) then Goto (strsub)
  5095.  Find(&b,,)
  5096.  If (%ARESP%)=(0) then Goto (strsub)
  5097.  SetEqual(a=%var%b)
  5098.  SetEqual(c=%ARESP%)
  5099.  AddVar(%var%c+-1=c)
  5100.  Get(&a,1,%var%c)
  5101.  NotIF (%ARESP%)=(/:SEC/) then Goto (strsub)
  5102.  AddVar(%var%c+2=c)
  5103.  Get(&b,%var%c,10)
  5104.  SetEqual (/SEC=%ARESP%)
  5105.  SetEqual (/SUB=N)
  5106.  Log(--,User's subscription expired.)
  5107.  *done
  5108.  return
  5109. NEWUSER2CTLƒsetactivity(New-user Logon...)
  5110. log(==,New User (%var%D) Registering...)
  5111. setequal(\company=)
  5112. setequal(\street1=)
  5113. setEqual(\title=)
  5114. setequal(\mhsname=)
  5115. setequal(\NAME=%var%D)
  5116. setequal(\LAST=%DATE%)
  5117. setequal(\LASTCHK=%DATE%)
  5118. setequal(t=0)
  5119.  
  5120.         *street
  5121. ask(&CR&&3&Please enter your &11&street &3&address&12&:&15& *)
  5122. setequal(\STREET=%RESP%)
  5123.  
  5124.         *city
  5125. ask(%MIN%1%%LEN%40%&CR&&3&Please enter the &11&City & State &3&that you're calling from&12&: &15&*)
  5126. setequal(/FROM=%RESP%)
  5127. setequal(\FROM=%RESP%)
  5128. if (/:from/)=(\:street\) then goto (fake)
  5129.  
  5130. ask(%LEN%10%&CR&&3&Please enter your &11&Postal Code&12&:&15& *)
  5131. setequal(\zip=%resp%)
  5132.  
  5133. ask(&3&&CR&Please enter the country you're calling from&12&: &15&*)
  5134. setequal(\country=%resp%)
  5135.  
  5136. update
  5137.         *PASS
  5138. menuask(%MIN%2%&3&&CR&Please enter the password you would like to use for access&12&: &15&*)
  5139. menuequal(a=%name%)
  5140. if (%resp%)=(&a) then goto (bp)
  5141. menuequal(a=%fname%)
  5142. if (&a)=(%resp%) then goto (bp)
  5143. menuequal(a=%lname%)
  5144. if (&a)=(%resp%) then goto (bp)
  5145. setequal(\PASS=%RESP%)
  5146. setequal(k=%RESP%)
  5147. say(&CR&&10&Dots will echo instead of the actual letters of your password.)
  5148. say(&CR&&3&Please enter the password again for verification&12&: &15&*)
  5149. cgetpass(%MIN%2%.)
  5150. notif (%RESP%) = (&k) then goto (badpass)
  5151.  
  5152. menuask(&CR&&3&Please enter your telephone number&12&: &15&*)
  5153. repeating(%resp%)
  5154. iftrue(goto(fake))
  5155. setequal(\PHONE=%RESP%)
  5156. setequal(/PHONE=%Resp%)
  5157.  
  5158. say(&CR&&3&Please enter your &11&birthdate &3&in the format shown. (MM-DD-YY)&15&)
  5159. update
  5160. picture(##-##-##)
  5161. repeating(%resp%)
  5162. iftrue(goto (fake))
  5163. setequal(\BIRTH=%RESP%)
  5164.  
  5165. setequal(/birth=%resp%)
  5166.  
  5167. say(&CR&&3&From where did you hear of this BBS?&12&: &15&*)
  5168. ask(*)
  5169. setequal(/memo5=%resp%)
  5170.  
  5171. clearscr
  5172. say(&CR&&3&Thank you for registering as a new user on the Powerboard World Support BBS.)
  5173. say(&CR&We would now like to present you with some information on BBS DIRECT, a way)
  5174. say(for you to save on your long-distance calls to this BBS.)
  5175. say(&CR&&12&It is *not* necessary that you subscribe to BBS DIRECT in order to access)
  5176. say(this system.  &3&However, we do recommend it as a way to cut down on your long-)
  5177. say(distance bill.)
  5178. say()
  5179. say(&3&View information on &11&BBS DIRECT&3& service? &9&[   ]&14&*)
  5180. back(4)
  5181. yesnoask(*)
  5182. if (%resp%)=(No) then goto (putemin)
  5183. display(display\bbsdir)
  5184. view(text\info.txt)
  5185.  
  5186. *putemin
  5187. setequal(\WAIT=N)
  5188. setequal(\FIRST=%DATE%)
  5189. setequal(\SCREENLEN=24)
  5190. setequal(\LEFT=70)
  5191. setequal(/left=70)
  5192. setequal(\SEC=%NEWSEC%)
  5193.  
  5194. *CreateIt
  5195. say(&14&Please wait while your records are created.*)
  5196. findsp
  5197. Say(.*)
  5198. setequal(a=%aresp%)
  5199. saveuser(%var%a)
  5200. Say(.*)
  5201. setequal(g=\:alias\)
  5202. upcase(g)
  5203. setequal(e=%var%D│%var%g│\:PASS\│\:FROM\│%var%a│0%C%13%%C%10%)
  5204. setlen(e=116)
  5205. appendtoN(userfile.ndx,%var%e%C%10%)
  5206.  
  5207.  UserLogin(%var%a,User %var%a: %var%d Logged On (%BAUD%))
  5208.  If (%ARESP%)=(ALREADY ON) then QuitBBS
  5209.  
  5210.  
  5211. qdx(%var%a)
  5212. say( |)
  5213. eline(55)
  5214. appendto(phones.dat,\:phone\)
  5215. clearscr
  5216. say(&CR&&3&Thank you for registering as a new user on the Powerboard World Support BBS.)
  5217. say(&CR&We would now like to present you with some information on BBS DIRECT, a way)
  5218. say(for you to save on your long-distance calls to this BBS.)
  5219. say(&CR&&12&It is *not* necessary that you subscribe to BBS DIRECT in order to access)
  5220. say(this system.  &3&However, we do recommend it as a way to cut down on your long-)
  5221. say(distance bill.)
  5222. say()
  5223. say(&15&View information on BBS DIRECT service? (&12&Y&15&/&12&N&15&)&14&*)
  5224. back(4)
  5225. yesnoask(*)
  5226. if (%resp%)=(No) then goto (fin)
  5227. display(display\bbsdir)
  5228. view(text\info.txt)
  5229. *fin
  5230. loadmem(control\open.ctl,goto (conclr))
  5231.  
  5232.         *BADPASS
  5233. say(&CR&&12&The passwords did not match.  Please try again...&CR&)
  5234. goto (pass)
  5235.  
  5236. *fake
  5237. appendto(badnames.bbs,%name%)
  5238. log(--,User attempted log on with false info)
  5239. quitbbs
  5240.  
  5241. *inv
  5242. inc(t)
  5243. if (&t)=(2) then goto (fake)
  5244. goto(city)
  5245.  
  5246. *bp
  5247. say (&CR&&12&Please enter a more unique, hard to guess password.&CR&)
  5248. goto (pass)
  5249. TIMEOUTCTLR    writeln(User took too long to respond.  Disconnecting ...)
  5250.     setequal(c=13~You took too long to respond.  Disconnecting ...~Timeout!~0~)
  5251.     Jump (wipc)
  5252. secpause(4)
  5253. quitbbs
  5254.  
  5255. *GCHAR
  5256. COMPRINT(%NV%TEXT%)
  5257. SETEQUAL(A=0)
  5258. DO
  5259. COMKEY
  5260. ASCII
  5261. IF(%ARESP%)=(21) THEN GOTO(GCHAR)
  5262. INC(A)
  5263. IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET
  5264. IF(%ARESP%)=(&B) THEN RET
  5265. IF(&A)>(45) THEN RET
  5266. IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%)
  5267. DELAY18TH(2)
  5268. LOOP
  5269. *WIPC
  5270. LOCALKEY(1)
  5271. IFNOTTRUE(GOTO(NOLKEY))
  5272. SYSKEYCHECK
  5273. SETEQUAL(/RESP=)
  5274. SETEQUAL(/RESP=)
  5275. *NOLKEY
  5276. CCARRIER
  5277. IF(%ARESP%)=(0) THEN GOTO (NOC0)
  5278. CHECKSUM(%VAR%C)
  5279. SETEQUAL(B=6)
  5280. SETNV(TEXT=$%ARESP%%VAR%C%C%13%)
  5281. SETNV(PBACK=)
  5282. JUMP(GCHAR)
  5283. IF(%ARESP%)<>(6) THEN JUMP(GCHAR)
  5284. SETEQUAL(/IBUFF=%NV%PBACK%)
  5285. LEN(%NV%PBACK%)
  5286. SETEQUAL(/IBUFF0=%ARESP%)
  5287. RET
  5288. *NOC0
  5289. log(<<,Carrier lost.)
  5290. quitbbs
  5291. EXITWIPCTL!setnv(aa=%var%a)
  5292. setnv(bb=%var%b)
  5293. setnv(cc=%var%c)
  5294. setnv(ee=%var%e)
  5295. setnv(resp0=%resp%)
  5296.  
  5297. setnv(wipe=)
  5298. if (%nv%wipmode%)<>(1) then return
  5299. write(Exiting WIP mode ... )
  5300. setnv(wipe=1)
  5301. setnv(wipmode=)
  5302. setequal(e=0)
  5303. *ExitAgain
  5304. inc(e)
  5305. setequal(c=0B~)
  5306. jump (wipc)
  5307. secpause(1)
  5308. flushout
  5309. *DetectWip
  5310. comsend(t)
  5311. say ( |)
  5312. say (     |)
  5313. secpause(1)
  5314. comkey
  5315. if (%aresp%)<>() then
  5316.   flushout
  5317.   goto (retn)
  5318. endif
  5319. secpause(1)
  5320. comkey
  5321. if (%aresp%)<>() then
  5322.   flushout
  5323.   goto (retn)
  5324. endif
  5325. comkey
  5326. if (%aresp%)<>() then
  5327.   flushout
  5328.   goto (Retn)
  5329. endif
  5330. if (%var%e)<(4) then goto (ExitAgain)
  5331. flushout
  5332. goto (retn)
  5333.  
  5334. *GCHAR
  5335. COMPRINT(%NV%TEXT%)
  5336. SETEQUAL(A=0)
  5337. DO
  5338. COMKEY
  5339. ASCII
  5340. IF(%ARESP%)=(21) THEN GOTO(GCHAR)
  5341. INC(A)
  5342. IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET
  5343. IF(%ARESP%)=(&B) THEN RET
  5344. IF(&A)>(45) THEN RET
  5345. IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%)
  5346. DELAY18TH(2)
  5347. LOOP
  5348. *WIPC
  5349. LOCALKEY(1)
  5350. IFNOTTRUE(GOTO(NOLKEY))
  5351. SYSKEYCHECK
  5352. SETEQUAL(/RESP=)
  5353. SETEQUAL(/RESP=)
  5354. *NOLKEY
  5355. CCARRIER
  5356. IF(%ARESP%)=(0) THEN GOTO (NOC0)
  5357. CHECKSUM(%VAR%C)
  5358. SETEQUAL(B=6)
  5359. SETNV(TEXT=$%ARESP%%VAR%C%C%13%)
  5360. SETNV(PBACK=)
  5361. JUMP(GCHAR)
  5362. IF(%ARESP%)<>(6) THEN JUMP(GCHAR)
  5363. SETEQUAL(/IBUFF=%NV%PBACK%)
  5364. LEN(%NV%PBACK%)
  5365. SETEQUAL(/IBUFF0=%ARESP%)
  5366. RET
  5367. *NOC0
  5368. log(<<,Carrier lost.)
  5369. quitbbs
  5370.  
  5371. *retn
  5372. say ( |)
  5373. writeln(Exiting WIP mode ... Done!)
  5374. setnv(wipmode=)
  5375. goto (dr)
  5376.  
  5377. *dr
  5378. setequal(a=%nv%aa%)
  5379. setequal(b=%nv%bb%)
  5380. setequal(c=%nv%cc%)
  5381. setequal(e=%nv%ee%)
  5382. setequal(/resp=%nv%resp0%)
  5383. setnv(aa=)
  5384. setnv(bb=)
  5385. setnv(cc=)
  5386. setnv(dd=)
  5387. setnv(resp0=)
  5388. return
  5389. NEWDISPCTLÜsetnv(didwip=)
  5390. setnv(dir=display\)
  5391. if (%nv%dispdir%)<>() then jump (dd)
  5392. if (%nv%wipmode%)<>(1) then goto (regular)
  5393. seek(%nv%dir%%nv%file%.wi0)
  5394. iftrue(goto(enhanced))
  5395. seek(%nv%dir%%nv%file%.wip)
  5396. iftrue(goto(wipfile))
  5397. seek(%nv%dir%%nv%file%.rip)
  5398. iftrue(goto(stdWip))
  5399. seek(%nv%dir%%nv%file%.ans)
  5400. iftrue(goto(wipans))
  5401. seek(%nv%dir%%nv%file%.asc)
  5402. iftrue(goto(wipans))
  5403. setnv(dir=)
  5404. return
  5405. *stdWip
  5406. display(%nv%dir%%nv%file%)
  5407. setnv(file=)
  5408. setnv(wipmode=1)
  5409. setnv(NoInfo=)
  5410. setnv(dir=)
  5411. return
  5412.  
  5413. *regular
  5414. display(%nv%dir%%nv%file%)
  5415. setnv(file=)
  5416. setnv(noinfo=)
  5417. return
  5418.  
  5419. *wipfile
  5420. seekfile(%nv%dir%%nv%file%.wip,N=Powerboard)
  5421. ifnottrue(goto(stdwip0))
  5422.  
  5423. *enhanced
  5424. seek(%nv%dir%%nv%file%.wip)
  5425. ifnottrue(goto(now0))
  5426. goto (doDisp)
  5427.  
  5428. *now0
  5429. seek(%nv%dir%%nv%file%.wi0)
  5430. ifnottrue(return)
  5431.  
  5432. *dodisp
  5433. setnv(didwip=1)
  5434. loadmem(control\ewipscr.ctl,setnv(wipf=%nv%file%))
  5435.  
  5436. *stdwip0
  5437. seek(%nv%dir%%nv%file%.wip)
  5438. iftrue(goto(stdwip))
  5439. seek(%nv%dir%%nv%file%.ans)
  5440. iftrue(goto(stdwip))
  5441. seek(%nv%dir%%nv%file%.asc)
  5442. iftrue(goto(stdwip))
  5443. setnv(dir=)
  5444. return
  5445.  
  5446. *wipans
  5447. loadsub(control\exitwip.ctl)
  5448. goto(stdwip)
  5449.  
  5450. *dd
  5451. setnv(dir=%nv%dispdir%)
  5452. setnv(dispdir=)
  5453. ret
  5454. DORIP   q!|*|1K|S010F|k00|N01|N00|KB4QEB4QE|KB4QEB4QE|S0100|K00I210QE|J10|n2000|M08
  5455. !|fZKQO|b0000ZII2280S0002X000|#|#|#
  5456. BIRTHCTL¿if (%nv%wipmode%)=(1) then goto (wipm)
  5457. Display (display\b-day)  ;show birthday screen
  5458. Enter
  5459. Return
  5460.  
  5461. *wipm
  5462. loadsub(control\ewipscr.ctl,setnv(wipf=b-day))
  5463. return
  5464. EWIPSCRCTL*doagain
  5465. setequal(q=)
  5466. setnv(wipwait=200)
  5467. setnv(wipmode=1)
  5468. if (%nv%jexec%)=(1) then goto (execScreen)
  5469. writeln()
  5470. if (%nv%wippath%)=() then setnv(wippath=display\)
  5471.  
  5472. if (%nv%asciiequiv%)=() then goto (noasciie)
  5473. inpopen(%nv%wippath%%nv%wipf%.asc)
  5474. *thetopw
  5475. fendif (fdone)
  5476. inpread
  5477. writeln (%aresp%)
  5478. goto (thetopw)
  5479. *fdone
  5480. inpclose
  5481. setnv(asciiequiv=)
  5482.  
  5483. *noasciie
  5484. setnv(wtx=)
  5485. setnv(wipfile1=%nv%wipf%.wip)
  5486. setnv(wipfile=%nv%wippath%%nv%wipfile1%)
  5487. writeln(Now displaying .WIP screen "%nv%wipfile%" . . .)
  5488. seek(%nv%wipfile%)
  5489. iftrue(goto(NoTemplate))
  5490. seek(display\%nv%wipf%.wi0)
  5491. ifnottrue(goto(retn))
  5492. fixfile(display\%nv%wipf%.wi0,%nv%wippath%%nv%wipf%.wip)
  5493.  
  5494. *NoTemplate
  5495. setnv(wiprestreq=)
  5496.  
  5497. jump (parseWip)
  5498. setnv(wipe=)
  5499.  
  5500. setequal(c=01~)
  5501. jump (wipc)
  5502. comlineinput(4,l)
  5503. flushout
  5504.  
  5505. *IsItHere
  5506. FTime(%nv%wipfile%)
  5507. setequal(a=%aresp%)
  5508. FDate(%nv%wipfile%)
  5509. setequal(d=%aresp%)
  5510. seekrep(d,45,47)
  5511. get(&d,1,1)
  5512. if (%aresp%)=(0) then
  5513. get(&d,2,1000)
  5514. setequal(d=%aresp%)
  5515. endif
  5516. setequal(c=02~Powerboard~Powerboard~%nv%wipfile1%~%var%a~%var%d~)
  5517. jump (wipc)
  5518. *gi0
  5519. comlineinput(30,l)
  5520. setequal(r=%resp%)
  5521. ascii
  5522. if (%aresp%)=(21) then goto (IsItHere)
  5523. if (%aresp%)=(6) then
  5524. len(%var%r)
  5525. if (%aresp%)=(1) then goto (gi0)
  5526. get(&r,2,1000)
  5527. setequal(/resp=%aresp%)
  5528. endif
  5529. if (%RESP%)<>(1) then if (%RESP%)<>(0) then goto (IsItHere)
  5530. flushOut
  5531. if (%resp%)=(0) then
  5532. setequal(b=6)
  5533. setequal(c=03~Z~)
  5534. checksum(%var%c)
  5535. setequal(/nvText=$%aresp%%var%c%C%13%)
  5536. jump(gChar)
  5537. if (%aresp%)=(6) then
  5538. exec(dsz.com port %port% speed %lbaud% sz %nv%wipfile%)
  5539. flushout
  5540. endif
  5541. endif
  5542.  
  5543. setequal(c=06~Powerboard~Powerboard~%nv%wipfile1%~)
  5544. jump (wipc)
  5545.  
  5546. write(Updating client's resource file directory ...)
  5547. *getrec0
  5548. if (%LOCAL%)=(FALSE) then
  5549. ccarrier
  5550. if (%aresp%)=(0) then quitbbs
  5551. endif
  5552. flushout
  5553. setequal(c=04~Powerboard~Powerboard~%nv%wipfile1%~)
  5554. jump (wipc)
  5555. if (%aresp%)<>(6) then goto (do4over)
  5556. ComlineInput(45,l)
  5557. setequal(b=6)
  5558. setequal(c=%resp%)
  5559. *tc
  5560. get(&c,1,1)
  5561. if (%aresp%)=() then
  5562.   get(&c,2,1000)
  5563.   setequal(c=%aresp%)
  5564.   goto(tc)
  5565. endif
  5566. get(&c,%var%b,1000)
  5567. checksum(%aresp%)
  5568. setequal(d=%aresp%)
  5569. get(&c,1,4)
  5570. if (%var%b)=(7) then get(&c,2,4)
  5571. upcase(d)
  5572. if (%aresp%)<>(%var%d) then goto (getrec0)
  5573. flushout
  5574. delimit(~)
  5575. find(&c,:)
  5576. addvar(%aresp%+1=d)
  5577. get(&c,%var%d,1000)
  5578. setequal(c=%aresp%)
  5579. setnv(files=%var%c)
  5580. *NextFile
  5581. setequal(c=%nv%files%)
  5582. dequeue(c)
  5583. if (%aresp%)=() then goto (DoneFiles)
  5584. setnv(file=%aresp%)
  5585. dequeue(c)
  5586. setnv(time=%aresp%)
  5587. dequeue(c)
  5588. setnv(files=%var%c)
  5589. setnv(date=%aresp%)
  5590. setnv(wpath=wip\resource\)
  5591. seek(%nv%wpath%%nv%file%)
  5592. if (%aresp%)=(No) then
  5593. setnv(wpath=display\)
  5594. seek(%nv%wpath%%nv%file%)
  5595. endif
  5596. ifnottrue(goto(NextFile))
  5597. ftime(%nv%wpath%%nv%file%)
  5598. getnumbers(%aresp%)
  5599. if (%aresp%)<>(%nv%time%) then
  5600. flushout
  5601. setequal(c=05~Z~)
  5602. jump(wipc)
  5603. if (%aresp%)=(6) then
  5604. clearscr
  5605. exec(dsz.com port %PORT% speed %LBAUD% sz %nv%wpath%%nv%file%)
  5606. flushout
  5607. endif
  5608. endif
  5609.  
  5610. flushout
  5611. setnv(wpath=)
  5612. goto(NextFile)
  5613.  
  5614. *DoneFiles
  5615. writeln(Done!)
  5616. write(Updating objects on WIP screen ...)
  5617. setnv(wipwait=50)
  5618. *INITOBJECTS
  5619. SETEQUAL(U=0)
  5620. DELIMIT(`)
  5621. *RARRAY
  5622. INC(U)
  5623. SETEQUAL(L=^:U^)
  5624. DEQUEUE(L)
  5625. SETEQUAL(P=%ARESP%)
  5626. DEQUEUE(L)
  5627. SETEQUAL(Z=%ARESP%)
  5628. DEQUEUE(L)
  5629. SETEQUAL(S=%ARESP%)
  5630. DEQUEUE(L)
  5631. JUMP(0FC)
  5632. IF(%VAR%U)<(%NV%HIGHNDX%) THEN GOTO(RARRAY)
  5633. writeln(Done!)
  5634. *ExecScreen
  5635. setnv(asciiequiv=)
  5636. setnv(jExec=)
  5637. flushout
  5638. writeln(Sending ExecScreen command)
  5639. setequal(c=0A~)
  5640. jump (wipc)
  5641.  
  5642. *GetInfo
  5643. setequal(q=0)
  5644. setnv(wtext=If you do not make a selection soon, we will disconnect you.)
  5645. loadsub(control\ewipinfo.ctl)
  5646. if (%var%q)=(2) then goto (doagain)
  5647. return
  5648. *geti
  5649. setequal(q=0)
  5650. setnv(wtext=If you do not make a selection soon, we will disconnect you.)
  5651. loadsub(control\ewipinfo.ctl,goto(geti))
  5652. if (%var%q)=(2) then goto (doagain)
  5653. return
  5654.  
  5655. *GCHAR
  5656. COMPRINT(%NV%TEXT%)
  5657. SETEQUAL(A=0)
  5658. DO
  5659. COMKEY
  5660. ASCII
  5661. IF(%ARESP%)=(21) THEN GOTO(GCHAR)
  5662. INC(A)
  5663. IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET
  5664. IF(%ARESP%)=(&B) THEN RET
  5665. IF(&A)>(%nv%wipwait%) THEN RET
  5666. IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%)
  5667. DELAY18TH(2)
  5668. LOOP
  5669. *WIPC
  5670. LOCALKEY(1)
  5671. IFNOTTRUE(GOTO(NOLKEY))
  5672. SYSKEYCHECK
  5673. SETEQUAL(/RESP=)
  5674. SETEQUAL(/RESP=)
  5675. *NOLKEY
  5676. CCARRIER
  5677. IF(%ARESP%)=(0) THEN GOTO (NOC0)
  5678. CHECKSUM(%VAR%C)
  5679. SETEQUAL(B=6)
  5680. SETNV(TEXT=$%ARESP%%VAR%C%C%13%)
  5681. SETNV(PBACK=)
  5682. JUMP(GCHAR)
  5683. if(%ARESP%)<>(6) THEN FLUSHOUT
  5684. IF(%ARESP%)<>(6) THEN JUMP(GCHAR)
  5685. setequal(c=%aresp%)
  5686. SETEQUAL(/IBUFF=%NV%PBACK%)
  5687. LEN(%NV%PBACK%)
  5688. SETEQUAL(/IBUFF0=%ARESP%)
  5689. SETEQUAL(/ARESP=%VAR%C)
  5690. RET
  5691. *NOC0
  5692. log(<<,Carrier lost.)
  5693. quitbbs
  5694.  
  5695. *PARSEWIP
  5696. CLEARMEM
  5697. SETEQUAL(a=0)
  5698. INPOPEN(%NV%WIPFILE%)
  5699. DO
  5700. FENDIF(DONEP)
  5701. INPREAD
  5702. if (%ARESP%)=([Form]) THEN GOTO (READFORM)
  5703. LOOP
  5704. *READFORM
  5705. SETEQUAL(C=0)
  5706. DO
  5707. FENDIF(DONEP)
  5708. INPREAD
  5709. SETEQUAL(B=%ARESP%)
  5710. GET(&B,5,2)
  5711. if (%ARESP%)=(0I) THEN JUMP (RRESOURCE)
  5712. if (%ARESP%)=(1T) THEN JUMP (RRESOURCE)
  5713. if (%ARESP%)=(0B) THEN JUMP (RRESOURCE)
  5714. LOOP
  5715. *DONEP
  5716. INPCLOSE
  5717. SETNV(HIGHNDX=%VAR%C)
  5718. RET
  5719.  
  5720. *0FC
  5721. flushout
  5722. SETEQUAL(C=0F~%VAR%P~%ARESP%~1~%VAR%Z~%VAR%S~)
  5723. GOTO(WIPC)
  5724.  
  5725. *RRESOURCE
  5726. SETEQUAL(Y=1)
  5727. IF (%ARESP%)=(0I) THEN SETEQUAL(Y=0)
  5728. SETEQUAL(W=%ARESP%)
  5729. DELIMIT(`)
  5730. DEQUEUE(B)
  5731. DEQUEUE(B)
  5732. SETEQUAL(X=%ARESP%)
  5733. SETEQUAL(S=)
  5734. IF(&W)<>(0B) THEN GOTO(NOT)
  5735. SETEQUAL(v=0)
  5736. *DE
  5737. DEQUEUE(B)
  5738. INC(V)
  5739. IF (&V)<(11) THEN GOTO(DE)
  5740. SETEQUAL(S=%ARESP%)
  5741. *NOT
  5742. INC(C)
  5743. SETEQUAL(Z=%VAR%X)
  5744. GET(&Z,1,5)
  5745. IF (%ARESP%)=(nosel) THEN SETEQUAL(Y=0)
  5746. IF (&Y)=(0) THEN SETEQUAL(Z=)
  5747. SETEQUAL(^%VAR%C=%VAR%X`%VAR%Y`%VAR%Z`%VAR%S)
  5748. RET
  5749.  
  5750. *retn
  5751. setnv(wippath=)
  5752. return
  5753.  
  5754. *wipAsk
  5755. loadsub(control\wipask.ctl)
  5756. ret
  5757.  
  5758. *do4over
  5759. flushout
  5760. goto (getrec0)
  5761. WIPASKCTLª setnv(didwip=)
  5762. setequal(/aresp=)
  5763. multicheck
  5764. if (/:left/)<(4) then
  5765.   seek(%pbtemp%timewarn.%node%)
  5766.   iftrue(goto(ptw))
  5767.   zap(%pbtemp%timewarn.%node%)
  5768.   setequal(c=13~Less than four minutes remain for this session.~Time Allowance Low~1~)
  5769.   jump (okbox)
  5770.   setequal(/resp=)
  5771. endif
  5772. *ptw
  5773. setequal(/resp=)
  5774. if (%MultiMsgs%)=(No) then goto (getinput)
  5775. findfirst(%cpat%*.%node%)
  5776. if (%aresp%)=() then if (%aresp%)<>(0) then goto (getinput)
  5777. setnv(arbak=%aresp%)
  5778. loadsub(control\wipsound.ctl,setnv(file=im.wav))
  5779. setequal(/aresp=%nv%arbak%)
  5780. setnv(arbak=)
  5781. writeln(Incomming message from another node:)
  5782. setnv(fil=%cpat%%aresp%)
  5783. inpopen(%cpat%%aresp%)
  5784. inpread
  5785. writeln(%aresp%)
  5786. setequal(c=13~%aresp%)
  5787. fendif(nomore)
  5788. do
  5789. inpread
  5790. writeln(%aresp%)
  5791. setequal(c=%var%c - %aresp%)
  5792. fendif(nomore)
  5793. loop
  5794. *getinput
  5795. Comlineinput(%var%y,l)
  5796. setnv(y=%var%y)
  5797. setnv(aresp=%aresp%)
  5798. setequal(o=%resp%)
  5799. *ao
  5800. ascii
  5801. setequal(y=%aresp%)
  5802. if (%var%y)=(6) then get (&o,2,1000)
  5803. if (%var%y)<>(6) then get (&o,1,1000)
  5804. setequal(o=%aresp%)
  5805. len(%aresp%)
  5806. if (%aresp%)=(1) then if (%var%y)=(6) then setequal(o=)
  5807. setequal(/resp=%var%o)
  5808. if (%var%y)=(6) then if (%var%o)<>() then goto (ao)
  5809. setequal(o=%resp%)
  5810. *ao2
  5811. ascii
  5812. setequal(y=%aresp%)
  5813. if (%var%y)=(21) then get (&o,2,1000)
  5814. if (%var%y)<>(21) then get (&o,1,1000)
  5815. setequal(o=%aresp%)
  5816. len(%aresp%)
  5817. if (%aresp%)=(1) then if (%var%y)=(21) then setequal(o=)
  5818. setequal(/resp=%var%o)
  5819. if (%var%y)=(21) then if (%var%o)<>() then goto (ao2)
  5820. setequal(b=%resp%)
  5821. *NoCmnd
  5822. setequal(y=%nv%y%)
  5823. setnv(y=)
  5824. setequal(/resp=%var%b)
  5825. if (%resp%)=(-1) then
  5826.    setnv(wipmode=)
  5827.    setequal(/graphics=ANSI)
  5828.    secpause(2)
  5829.    endif
  5830. setequal(/aresp=%nv%aresp%)
  5831. setnv(aresp=)
  5832. return
  5833. *okbox
  5834. strippba(%var%c)
  5835. setequal(c=%aresp%)
  5836. Jump (wipc)
  5837. cursoron
  5838. comlineinput(180,l)
  5839. cursoroff
  5840. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  5841. if (%resp%)=() then goto (okbox)
  5842. setequal(c=0A~)
  5843. jump (wipc)
  5844. ret
  5845. *nomore
  5846. setequal(c=%var%c~Instant Message~1~)
  5847. inpclose
  5848. kill (%nv%fil%)
  5849. jump (okbox)
  5850. goto(ptw)
  5851.  
  5852. *GCHAR
  5853. COMPRINT(%NV%TEXT%)
  5854. SETEQUAL(A=0)
  5855. DO
  5856. COMKEY
  5857. ASCII
  5858. IF(%ARESP%)=(21) THEN GOTO(GCHAR)
  5859. INC(A)
  5860. IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET
  5861. IF(%ARESP%)=(&B) THEN RET
  5862. IF(&A)>(45) THEN RET
  5863. IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%)
  5864. DELAY18TH(2)
  5865. LOOP
  5866. *WIPC
  5867. LOCALKEY(1)
  5868. IFNOTTRUE(GOTO(NOLKEY))
  5869. SYSKEYCHECK
  5870. SETEQUAL(/RESP=)
  5871. SETEQUAL(/RESP=)
  5872. *NOLKEY
  5873. CCARRIER
  5874. IF(%ARESP%)=(0) THEN GOTO (NOC0)
  5875. CHECKSUM(%VAR%C)
  5876. SETEQUAL(B=6)
  5877. SETNV(TEXT=$%ARESP%%VAR%C%C%13%)
  5878. SETNV(PBACK=)
  5879. JUMP(GCHAR)
  5880. IF(%ARESP%)<>(6) THEN JUMP(GCHAR)
  5881. SETEQUAL(/IBUFF=%NV%PBACK%)
  5882. LEN(%NV%PBACK%)
  5883. SETEQUAL(/IBUFF0=%ARESP%)
  5884. RET
  5885. *NOC0
  5886. log(<<,Carrier lost.)
  5887. quitbbs
  5888.  
  5889. *twarn
  5890. loadsub(control\wipsound.ctl,setnv(file=wakeup!.wav))
  5891. writeln(User not responding.  Timeout warning sent to remote ...)
  5892. setequal(c=13~If you do not make a selection soon, we will disconnect you.~Timeout Warning~1~)
  5893. Jump (okbox0)
  5894. setequal(c=0A~)
  5895. jump (wipc)
  5896. comlineinput(90,l)
  5897. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  5898. setequal(/resp=)
  5899. return
  5900.  
  5901. *okbox0
  5902. Jump (wipc)
  5903. setequal(/aresp=)
  5904. comlineinput(60,l)
  5905. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  5906. if (%resp%)=() then goto (okbox)
  5907. ret
  5908. WIPWELCCTL;Powerboard BBS 2.00 (C) 1995 NuIQ Software Inc.  All Rights Reserved
  5909.  
  5910. *tryWagain
  5911. setnv(wstimes=0) ;# times welcome screen has been sent.
  5912. setnv(wipwait=200)
  5913. setnv(wipmode=1)
  5914. setnv(wipf=Welcome)
  5915.  
  5916. setnv(wtx=)
  5917. setnv(wipfile1=%nv%wipf%.wip)
  5918. setnv(wipfile=display\%nv%wipfile1%)
  5919.  
  5920. seek(%nv%wipfile%)
  5921. iftrue(goto(NoTemplate))
  5922. seek(display\%nv%wipf%.wi0)
  5923. ifnottrue(goto(nowelc0))
  5924. fixfile(display\%nv%wipf%.wi0,display\%nv%wipf%.wip)
  5925.  
  5926. *NoTemplate
  5927. setnv(wiprestreq=)
  5928.  
  5929. jump (parseWip)
  5930.  
  5931. Writeln(Sending WIP Welcome Screen ...)
  5932.  
  5933. setnv(wipe=)
  5934. setnv(Text=$00DF01~%C%13%)
  5935. setequal(b=6)
  5936. jump (gChar)
  5937.  
  5938. comlineinput(4,l)
  5939. flushout
  5940.  
  5941. *IsItHere
  5942. FTime(%nv%wipfile%)
  5943. setequal(a=%aresp%)
  5944. FDate(%nv%wipfile%)
  5945. setequal(d=%aresp%)
  5946. seekrep(d,45,47)
  5947. get(&d,1,1)
  5948. if (%aresp%)=(0) then
  5949. get(&d,2,1000)
  5950. setequal(d=%aresp%)
  5951. endif
  5952. setequal(c=02~Powerboard~Powerboard~%nv%wipfile1%~%var%a~%var%d~)
  5953. jump (wipc)
  5954. *gi0
  5955. comlineinput(30,l)
  5956. setequal(r=%resp%)
  5957. ascii
  5958. if (%aresp%)=(21) then goto (IsItHere)
  5959. if (%aresp%)=(6) then
  5960. len(%var%r)
  5961. if (%aresp%)=(1) then goto (gi0)
  5962. get(&r,2,1000)
  5963. setequal(/resp=%aresp%)
  5964. endif
  5965. if (%RESP%)<>(1) then if (%RESP%)<>(0) then goto (IsItHere)
  5966. flushOut
  5967. if (%resp%)=(0) then
  5968. addvar(%nv%wstimes%+1=b)
  5969. setnv(wsTimes=%var%b)
  5970. if (%var%b)>(2) then
  5971.    setequal(c=13~Unable to send WELCOME.WIP.  Your wip menu database (c:\dctermw\screen.mdb) may be corrupt.  Try deleting this file & logging on again.~SCREEN.MDB Corrupt~0~)
  5972.    jump (wipc)
  5973.    log(--,WIP Logon Attempt: User's screen database corrupt)
  5974.    log(<<,User can delete SCREEN.MDB to correct this.)
  5975.    say(WIP Logon Attempt: User's screen database corrupt)
  5976.    say(User can delete SCREEN.MDB to correct this.)
  5977.    secpause(5)
  5978.    quitbbs
  5979.    endif
  5980. setequal(b=6)
  5981. setequal(c=03~Z~)
  5982. checksum(%var%c)
  5983. setequal(/nvText=$%aresp%%var%c%C%13%)
  5984. jump(gChar)
  5985. if (%aresp%)=(6) then
  5986. clearscr
  5987. exec(dsz.com port %PORT% speed %LBAUD% sz %nv%wipfile%)
  5988. flushout
  5989. goto(isItHere)
  5990. endif
  5991. endif
  5992.  
  5993. setequal(c=06~Powerboard~Powerboard~%nv%wipfile1%~)
  5994. jump (wipc)
  5995.  
  5996. write(Updating client's resource file directory ...)
  5997. *getrec0
  5998. if (%LOCAL%)=(FALSE) then
  5999. ccarrier
  6000. if (%aresp%)=(0) then quitbbs
  6001. endif
  6002. flushout
  6003. setequal(c=04~Powerboard~Powerboard~%nv%wipfile1%~)
  6004. jump (wipc)
  6005. if (%aresp%)<>(6) then goto (do4over)
  6006. ComlineInput(45,l)
  6007. setequal(b=6)
  6008. setequal(c=%resp%)
  6009. *tc
  6010. get(&c,1,1)
  6011. if (%aresp%)=() then
  6012.   get(&c,2,1000)
  6013.   setequal(c=%aresp%)
  6014.   goto(tc)
  6015. endif
  6016. get(&c,%var%b,1000)
  6017. appendto(fil,aresp: "%aresp%")
  6018. checksum(%aresp%)
  6019. setequal(d=%aresp%)
  6020. get(&c,1,4)
  6021. if (%var%b)=(7) then get(&c,2,4)
  6022. upcase(d)
  6023. if (%aresp%)<>(%var%d) then goto (getrec0)
  6024. flushout
  6025. delimit(~)
  6026. find(&c,:)
  6027. addvar(%aresp%+1=d)
  6028. get(&c,%var%d,1000)
  6029. setequal(c=%aresp%)
  6030. setnv(files=%var%c)
  6031. *NextFile
  6032. setequal(c=%nv%files%)
  6033. dequeue(c)
  6034. if (%aresp%)=() then goto (DoneFiles)
  6035. setnv(file=%aresp%)
  6036. dequeue(c)
  6037. setnv(time=%aresp%)
  6038. dequeue(c)
  6039. setnv(files=%var%c)
  6040. setnv(date=%aresp%)
  6041. setnv(wpath=wip\resource\)
  6042. seek(%nv%wpath%%nv%file%)
  6043. if (%aresp%)=(No) then
  6044. setnv(wpath=display\)
  6045. seek(%nv%wpath%%nv%file%)
  6046. endif
  6047. ifnottrue(goto(NextFile))
  6048. ftime(%nv%wpath%%nv%file%)
  6049. getnumbers(%aresp%)
  6050. if (%aresp%)<>(%nv%time%) then
  6051. flushout
  6052. setequal(c=05~Z~)
  6053. jump(wipc)
  6054. if (%aresp%)=(6) then
  6055. clearscr
  6056. exec(dsz.com port %PORT% speed %LBAUD% sz %nv%wpath%%nv%file%)
  6057. flushout
  6058. endif
  6059. endif
  6060.  
  6061. flushout
  6062. setnv(wpath=)
  6063. goto(NextFile)
  6064.  
  6065. *DoneFiles
  6066. writeln(Done!)
  6067. setnv(wipwait=50)
  6068. *INITOBJECTS
  6069. SETEQUAL(U=0)
  6070. DELIMIT(`)
  6071. *RARRAY
  6072. INC(U)
  6073. SETEQUAL(L=^:U^)
  6074. DEQUEUE(L)
  6075. SETEQUAL(P=%ARESP%)
  6076. DEQUEUE(L)
  6077. SETEQUAL(Z=%ARESP%)
  6078. DEQUEUE(L)
  6079. SETEQUAL(S=%ARESP%)
  6080. DEQUEUE(L)
  6081. JUMP(0FC)
  6082. IF(%VAR%U)<(%NV%HIGHNDX%) THEN GOTO(RARRAY)
  6083.  
  6084. if (%nv%wtx%)=(1) then
  6085. setequal(c=07~welcometext~Welcome to %BBS%~)
  6086. jump (wipc)
  6087. endif
  6088.  
  6089. setequal(d=)
  6090. setequal(z=)
  6091.  
  6092. *ExecScreen
  6093. flushout
  6094. writeln(Sending ExecScreen command)
  6095. setequal(c=0A~)
  6096. jump (wipc)
  6097.  
  6098. *GetInfo
  6099. loadsub(control\welchelp.ctl)
  6100. *geti
  6101. setequal(y=10)
  6102. jump (wipask)
  6103. if (%nv%wiprestreq%)=(1) then goto (notemplate)
  6104. if (%aresp%)<>(24) then goto (GotAResp)
  6105. setequal(c=0A~)
  6106. jump (wipc)
  6107. if (%local%)=(FALSE) then
  6108. ccarrier
  6109. if (%aresp%)=(0) then quitbbs
  6110. endif
  6111. setequal(y=20)
  6112. jump (wipask)
  6113. if (%nv%wiprestreq%)=(1) then goto (notemplate)
  6114. if (%aresp%)<>(24) then goto (gotaResp)
  6115. setequal(c=0A~)
  6116. jump (wipc)
  6117. setequal(y=98)
  6118. jump (wipask)
  6119. if (%nv%wiprestreq%)=(1) then goto (notemplate)
  6120. if (%aresp%)=(24) then goto (dowarn)
  6121. *GotAResp
  6122. setequal(o=%resp%)
  6123. *ao
  6124. ascii
  6125. setequal(y=%aresp%)
  6126. if (%var%y)=(6) then get (&o,2,1000)
  6127. if (%var%y)<>(6) then get (&o,1,1000)
  6128. setequal(o=%aresp%)
  6129. len(%aresp%)
  6130. if (%aresp%)=(1) then if (%var%y)=(6) then setequal(o=)
  6131. setequal(/resp=%var%o)
  6132. if (%var%y)=(6) then if (%var%o)<>() then goto (ao)
  6133. setequal(b=%resp%)
  6134. writeln( Response from user: "%var%b")
  6135. if (%var%b)=() then goto (tryWagain)
  6136. if (%var%b)=(-1) then
  6137.   setnv(wipmode=)
  6138.   setequal(/graphics=ANSI)
  6139.   secpause(2)
  6140.   loadmem(control\open.ctl,goto(dwelc))
  6141.   endif
  6142. ccarrier
  6143. if (%aresp%)=(0) then quitbbs
  6144. find(&b,;)
  6145. if (%aresp%)<(1) then goto (noCmnd)
  6146. setnv(tries=0)
  6147. addvar(%aresp%+-1=e)
  6148. addvar(%aresp%+1=f)
  6149. get(&b,1,%var%e)
  6150. SetNv(WipC=%aresp%)
  6151. setnv(cText=)
  6152. len(%var%b)
  6153. if (%var%f)<=(%aresp%) then
  6154. get(&b,%var%f,1000)
  6155. SetNv(Ctext=%aresp%)
  6156. endif
  6157. if (%nv%wipc%)=(name) then setequal(d=%nv%cText%)
  6158. if (%nv%wipc%)=(nameprompt) then setequal(d=%nv%Ctext%)
  6159. if (%nv%wipc%)=(password) then setequal(z=%nv%Ctext%)
  6160. upcase(z)
  6161. *NoCmnd
  6162. setnv(wtxt=)
  6163. if (%resp%)=(logon) then return
  6164. goto (geti)
  6165.  
  6166. *GCHAR
  6167. COMPRINT(%NV%TEXT%)
  6168. SETEQUAL(A=0)
  6169. DO
  6170. COMKEY
  6171. ASCII
  6172. IF(%ARESP%)=(21) THEN GOTO(GCHAR)
  6173. INC(A)
  6174. IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET
  6175. IF(%ARESP%)=(&B) THEN RET
  6176. IF(&A)>(%nv%wipwait%) THEN RET
  6177. IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%)
  6178. DELAY18TH(2)
  6179. LOOP
  6180. *WIPC
  6181. LOCALKEY(1)
  6182. IFNOTTRUE(GOTO(NOLKEY))
  6183. SYSKEYCHECK
  6184. SETEQUAL(/RESP=)
  6185. SETEQUAL(/RESP=)
  6186. *NOLKEY
  6187. CCARRIER
  6188. IF(%ARESP%)=(0) THEN GOTO (NOC0)
  6189. CHECKSUM(%VAR%C)
  6190. SETEQUAL(B=6)
  6191. SETNV(TEXT=$%ARESP%%VAR%C%C%13%)
  6192. SETNV(PBACK=)
  6193. JUMP(GCHAR)
  6194. if(%ARESP%)<>(6) THEN FLUSHOUT
  6195. IF(%ARESP%)<>(6) THEN JUMP(GCHAR)
  6196. setequal(c=%aresp%)
  6197. SETEQUAL(/IBUFF=%NV%PBACK%)
  6198. LEN(%NV%PBACK%)
  6199. SETEQUAL(/IBUFF0=%ARESP%)
  6200. SETEQUAL(/ARESP=%VAR%C)
  6201. RET
  6202. *NOC0
  6203. log(<<,Carrier lost.)
  6204. quitbbs
  6205.  
  6206. *PARSEWIP
  6207. CLEARMEM
  6208. SETEQUAL(A=0)
  6209. INPOPEN(%NV%WIPFILE%)
  6210. DO
  6211. FENDIF(DONEP)
  6212. INPREAD
  6213. IF(%ARESP%)=([Form]) THEN GOTO (READFORM)
  6214. LOOP
  6215. *READFORM
  6216. SETEQUAL(C=0)
  6217. DO
  6218. FENDIF(DONEP)
  6219. INPREAD
  6220. SETEQUAL(B=%ARESP%)
  6221. GET(&B,5,2)
  6222. IF(%ARESP%)=(0I) THEN JUMP(RRESOURCE)
  6223. IF(%ARESP%)=(1T) THEN JUMP(RRESOURCE)
  6224. IF(%ARESP%)=(0B) THEN JUMP(RRESOURCE)
  6225. LOOP
  6226. *DONEP
  6227. INPCLOSE
  6228. SETNV(HIGHNDX=%VAR%C)
  6229. RET
  6230.  
  6231. *0FC
  6232. flushout
  6233. SETEQUAL(C=0F~%VAR%P~%ARESP%~1~%VAR%Z~%VAR%S~)
  6234. GOTO(WIPC)
  6235.  
  6236. *RRESOURCE
  6237. SETEQUAL(Y=1)
  6238. IF(%ARESP%)=(0I) THEN SETEQUAL(Y=0)
  6239. SETEQUAL(W=%ARESP%)
  6240. DELIMIT(`)
  6241. DEQUEUE(b)
  6242. DEQUEUE(b)
  6243. SETEQUAL(X=%ARESP%)
  6244. SETEQUAL(S=)
  6245. IF (&W)<>(0B) then goto (noT)
  6246. SETEQUAL(V=0)
  6247. *DE
  6248. DEQUEUE(B)
  6249. INC(V)
  6250. IF(&V)<(11) THEN GOTO(DE)
  6251. SETEQUAL(S=%ARESP%)
  6252. *NOT
  6253. INC(C)
  6254. SETEQUAL(Z=%VAR%X)
  6255. IF(&Z)=(welcometext) THEN SETEQUAL(Y=0)
  6256. IF(&Z)=(welcometext) THEN SETNV(WTX=1)
  6257. IF(&Y)=(0) THEN SETEQUAL(Z=)
  6258. SETEQUAL(^%VAR%C=%VAR%X`%VAR%Y`%VAR%Z`%VAR%S)
  6259. RET
  6260.  
  6261. *badname
  6262. writeln(Invalid account info entered.  Try again...)
  6263. setequal(c=13~Invalid account information entered.  Please try again.~Invalid Data Entered~1~)
  6264. jump (wipc)
  6265. comlineinput(30,l)
  6266. goto(ExecScreen)
  6267.  
  6268. *nowelc0
  6269. log(!!,Wip Welcome Scr Not Found!)
  6270. log(!!,Disconnecting!)
  6271. quitbbs
  6272.  
  6273. *wipAsk
  6274. loadsub(control\wipask.ctl)
  6275. ret
  6276.  
  6277. *do4over
  6278. flushout
  6279. goto (getrec0)
  6280.  
  6281. *dowarn
  6282. loadsub(control\wipwarn.ctl)
  6283. goto (execscreen)
  6284. NOCTL)log(<<,Excessive logon attempts!)
  6285. if (%graphics%)=(WIP) then goto (WipExcess)
  6286. say(&12&&CR&Excessive unsuccessful logon attempts!)
  6287. secpause(1)
  6288. linefeed(1)
  6289. quitbbs
  6290.  
  6291. *WipExcess
  6292.   setequal(c=13~Excessive unsuccessful logon attempts!~Goodbye~0~)
  6293.   jump (wipc)
  6294.   secpause(2)
  6295.   setequal(/resp=NAME ENTERED: "%NAME%"  PASSWORD ATTEMPTED: "%NV%PASSWORD%")
  6296.   loadmem(control\macros\usrbad.ctl)
  6297.  
  6298.  
  6299. *GCHAR
  6300. COMPRINT(%NV%TEXT%)
  6301. SETEQUAL(A=0)
  6302. DO
  6303. COMKEY
  6304. ASCII
  6305. IF(%ARESP%)=(21) THEN GOTO(GCHAR)
  6306. INC(A)
  6307. IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET
  6308. IF(%ARESP%)=(&B) THEN RET
  6309. IF(&A)>(45) THEN RET
  6310. IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%)
  6311. DELAY18TH(2)
  6312. LOOP
  6313. *WIPC
  6314. LOCALKEY(1)
  6315. IFNOTTRUE(GOTO(NOLKEY))
  6316. SYSKEYCHECK
  6317. SETEQUAL(/RESP=)
  6318. SETEQUAL(/RESP=)
  6319. *NOLKEY
  6320. CCARRIER
  6321. IF(%ARESP%)=(0) THEN GOTO (NOC0)
  6322. CHECKSUM(%VAR%C)
  6323. SETEQUAL(B=6)
  6324. SETNV(TEXT=$%ARESP%%VAR%C%C%13%)
  6325. SETNV(PBACK=)
  6326. JUMP(GCHAR)
  6327. IF(%ARESP%)<>(6) THEN JUMP(GCHAR)
  6328. SETEQUAL(/IBUFF=%NV%PBACK%)
  6329. LEN(%NV%PBACK%)
  6330. SETEQUAL(/IBUFF0=%ARESP%)
  6331. RET
  6332. *NOC0
  6333. log(<<,Carrier lost.)
  6334. quitbbs
  6335. PASSCTL@*GetPass
  6336. ;Say(What would you like your new password to be?&12&: &15&*)
  6337. Say(&15&What do you want as your password?&12&: &12&(*)
  6338. Spaces(20)
  6339. Say()&14&*)
  6340. Back(21)
  6341. cgetpass(%LEN%20%.)
  6342. if (%resp%)=() then return
  6343. If(%RESP%)=(%NAME%) then Goto(TooEasy)
  6344. If(%RESP%)=(/:NAME/) then Goto(TooEasy)
  6345. SetNv(o=%VAR%O)
  6346. MenuEqual(o=%FNAME%)
  6347. If(%RESP%)=(&o) then Goto(TooEasy)
  6348. MenuEqual(o=%LNAME%)
  6349. If(%RESP%)=(&o) then Goto(TooEasy)
  6350. SetEqual(o=%NV%O%)
  6351. SetNv(o=)
  6352. Get(%RESP%,1,1)
  6353. If(%ARESP%)=(?) then Goto(OlHelp)
  6354. If(%ARESP%)=(/) then Goto(Anywhere)
  6355. SetNv(passtemp=%RESP%)
  6356. Say(&CR&&15&Please re-enter your password for verification&12&: &12&(*)
  6357. Spaces(20)
  6358. Say()&14&*)
  6359. Back(21)
  6360. cgetpass(%LEN%20%.)
  6361. If(%ARESP%)=(-1) then Goto(NoMatch)
  6362. If(%RESP%)<>(%NV%PASSTEMP%) then Goto(NoMatch)
  6363. SetEqual(/PASS=%RESP%)
  6364. SetNv(passtemp=)
  6365. If(%NV%NEWUSER%)<>(Yes) then Log(--,Changed Password)
  6366. return
  6367.  
  6368. *NoMatch
  6369. Say(&CR&&12&The two passwords did not match. Please try again...&CR&)
  6370. Goto(GetPass)
  6371.  
  6372. *TooEasy
  6373. Say(&CR&&12&Please enter a more unique, hard-to-guess password.&CR&)
  6374. Goto(GetPass)
  6375.  
  6376. *OlHelp
  6377. SetNv(AtPrompt=Yes)
  6378. SetNv(Helpoption=119)  ; help on password entry
  6379. LoadSub(olhelp\olhelp.ctl,Goto(ImplementOption))
  6380. Goto(GetPass)
  6381.  
  6382. *Anywhere
  6383. Len(%RESP%)
  6384. If(%ARESP%)<(2) then Goto(Bsel)
  6385. LoadSub(control\macros\anywhere.ctl)
  6386. Goto(GetPass)
  6387. READLWIPCTL∩%
  6388. *help
  6389. display(display\help\read,/:SEC/)
  6390. goto (brmail)
  6391.  
  6392. *Repeat
  6393. setnv(wss=0)
  6394. setnv(NoInfo=1)
  6395. zap(%pbtemp%msgstmp.%node%)
  6396. setequal(u=0)
  6397. do
  6398. inc(u)
  6399. setequal(z=^:u^)
  6400. if (%var%z)=() then goto (DoWipScr)
  6401. appendto(%pbtemp%msgstmp.%node%,%var%z)
  6402. loop
  6403. *doWipScr
  6404. jump (gethilow)
  6405. loadsub(control\ewipscr.ctl,setnv(wipf=inbox))
  6406. arrayread(%pbtemp%msgstmp.%node%)
  6407. setequal(s=0)
  6408.  
  6409. setequal(c=14~msgs~100~15~)
  6410. jump (wipc)
  6411. setequal(t=0)
  6412. ;writeln(got back from 14 command.)
  6413.  
  6414. SetEqual(/nvkilled=)
  6415. SetEqual(/nvselected=1)
  6416. SetEqual(/nvlist=NORMAL)
  6417. ;AddVar(/:SCREENLEN/+-5=q)
  6418. ;If(&q)>=(19) then SetEqual(q=18) ; screen length cannot be >23 for inbox
  6419. ;SetEqual(/nvscreenlen=%VAR%Q)
  6420. setnv(screenlen=15)
  6421. SetEqual(/nvpage=0)
  6422. SetEqual(i=1)
  6423. SetEqual(/nvstart=1)
  6424. SetEqual(/nvselected=1)
  6425. SetEqual(/nvkilled=NO)
  6426. DO
  6427.  SetEqual(y=^:I^)
  6428.  NotIf(&y)=() then SetEqual(/nvmax=%VAR%I)
  6429.  If(&y)=(DELETED) then SetEqual(/nvkilled=YES)
  6430.  If(&y)=() then Goto(AfterLoop)
  6431.  Inc(i)
  6432. LOOP
  6433. *AfterLoop
  6434. SetEqual(/nvtotmax=%NV%MAX%)
  6435. If(%NV%KILLED%)=(Yes) then 
  6436.   SetEqual(y=%NV%MAX%)
  6437.   AddVar(%VAR%Y+-1=y)
  6438.   SetEqual(/nvmax=%VAR%Y)
  6439.  endif
  6440. SetEqual(/nvkilled=)
  6441. SetEqual(i=1)
  6442. SetEqual(y=^:1^)
  6443. *Repeatme
  6444. ;writeln(got to repeatme)
  6445. Goto(Header)
  6446.  
  6447. *repeat2
  6448. ;writeln(going into repeat2...)
  6449. getmail(%VAR%Y,,%var%w,t,sh)
  6450. SetEqual(r=%ARESP%)
  6451. NotIf(%ARESP%)=(Yes) then NotIf(%ARESP%)=(DELETED) then Goto(LNext)
  6452. If(%MSGNUMBER%)=(0) then Goto (LNext)
  6453. ;writeln(2 got to repeat2 proc..)
  6454. SetEqual(a=%MSGNUMBER%)
  6455. SetLen(a=4)
  6456. If(%NV%SCREEN%)=(REFRESH) then 
  6457.  AddVar(%VAR%I+-%NV%START%=h)
  6458.  AddVar(%VAR%H+4=h)
  6459.  endif
  6460.  
  6461. ;Say(%VAR%A *)
  6462. setequal(c=)
  6463. setnv(msgn=%var%a)
  6464. If(%REPLIES%)=(REPLIES) then setequal(c=%var%cR )
  6465. NotIf(%REPLIES%)=(REPLIES) then setequal(c=%var%c  )
  6466. NotIf(%MSGRCVD%)=(RECEIVED) then setequal(c=%var%cN )
  6467. If(%MSGRCVD%)=(RECEIVED) then setequal(c=%var%c  )
  6468. If(%MSGATTACH%)=(Y) then setequal(c=%var%cA )
  6469. NotIf(%MSGATTACH%)=(Y) then setequal(c=%var%c  )
  6470. If(%VAR%R)=(DELETED) then setequal(c=%var%cD )
  6471. NotIf(%VAR%R)=(DELETED) then setequal(c=%var%c  )
  6472. MenuEqual(a=%MSGFROM%)
  6473. SetLen(a=25)
  6474. setequal(c=%var%c%VAR%A )
  6475. SetEqual(a=%MSGDESC%)
  6476. SetLen(a=33)
  6477. inc(s)
  6478. writeln(%nv%msgn% %var%c%var%a)
  6479. setequal(c=07~msgs~%nv%msgn% %var%c%VAR%A~)
  6480. jump (wipc)
  6481. inc(t)
  6482.  
  6483. NotIf(%NV%SCREEN%)=(REFRESH) then Goto(LNext)
  6484. If(%NV%SCREEN%)=(REFRESH) then Ret
  6485.  
  6486. *Done
  6487.  If(%NV%SCREEN%)<>(REFRESH) then
  6488.   SetEqual(y=^:I^)
  6489.   AddVar(%VAR%I+-1=i)
  6490.   SetEqual(/nvmax=%VAR%I)
  6491.   endif
  6492.  *GetKey
  6493. if (%nv%wss%)=(1) then goto (nowipstuff)
  6494. setequal(c=07~msgs~-1~)
  6495. jump (wipc)
  6496. setequal(c=0F~msgs~Message In-Box~1~1~2~)
  6497. jump (wipc)
  6498. setequal(c=0F~RecCount~12~1~0~1~)
  6499. jump (wipc)
  6500. setequal(c=0F~Exit~Exit~1~1~3~)
  6501. jump (wipc)
  6502. setequal(c=0F~Scrl_UP~~1~1~4~)
  6503. jump (wipc)
  6504. setequal(c=0F~Scrl_Dn~~1~1~5~)
  6505. jump (wipc)
  6506. setequal(c=0F~Page_Up~~1~1~6~)
  6507. jump (wipc)
  6508. setequal(c=0F~Page_Dn~~1~1~7~)
  6509. jump (wipc)
  6510. setnv(wss=1)
  6511. *nowipstuff
  6512. setequal(c=0A~)
  6513. jump (wipc)
  6514.  
  6515. setequal(y=180)
  6516. jump (wipask)
  6517. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  6518.  
  6519. if (%resp%)=(Exit) then goto (QDisp)
  6520. setequal(b=%resp%)
  6521. find(&b,,)
  6522. if (%aresp%)=(0) then goto (noresp)
  6523. addvar(%aresp%+1=c)
  6524. get(&b,%var%c,1000)
  6525. if (%aresp%)=(-1) then goto (nextp)
  6526. setnv(selected=%aresp%)
  6527. goto(done2)
  6528. *noresp
  6529.  LoadSub(control\macros\checkkey.ctl)
  6530.  If(%RESP%)=(Q) then Goto(Qdisp)
  6531.  if(%RESP%)=() then goto(Qdisp)
  6532.  If(%RESP%)=(-) then
  6533.    SetEqual(/nvme=%VAR%H)
  6534.    If(%NV%START%)<=(%NV%SCREENLEN%) then Goto(FirstPage)
  6535.    AddVar(%NV%START%+-%NV%SCREENLEN%=h)
  6536.    Inc(h)
  6537.    SetEqual(/nvstart=%VAR%H)
  6538.    AddVar(%NV%SELECTED%+-%NV%SCREENLEN%=h)
  6539.    Inc(h)
  6540.    SetEqual(/nvselected=%VAR%H)
  6541.    SetEqual(h=%NV%ME%)
  6542.    SetEqual(/nvme=)
  6543.    ;SetEqual(/nvselected=%VAR%I)
  6544.    SetEqual(/nvscreen=NORMAL)
  6545.    SetEqual(i=%NV%START%)
  6546.    Goto(Header)
  6547.   Endif
  6548.  
  6549.  If(%RESP%)=(<CR>) then Goto(Done2)  
  6550.  If(%RESP%)=(2) then Jump(DownArrow)          ; down arrow pressed
  6551.  If(%RESP%)=(<CR>) then Goto(Done2)  
  6552.  Ascii
  6553.  If(%ARESP%)=(13) then Goto(Done2)
  6554. Goto(GetKey)
  6555.   
  6556.  *Done2
  6557.  SetEqual(i=%NV%SELECTED%)
  6558.  SetEqual(/nvi=%VAR%I)
  6559.  SetEqual(i=^:I^)
  6560.  getmail(%var%i,,%var%w)
  6561.  Goto(AgMail)
  6562.  Return
  6563.  
  6564. *aGMail
  6565. SetEqual(/nvstatus=)
  6566. LoadSub(control\macros\showmWip.ctl)
  6567. setnv(WipfS=)
  6568. If(%NV%STATUS%)=(INBOX) then goto(inbox)
  6569. If(%NV%STATUS%)=(INV2) then Goto(inv2)
  6570. If(%NV%STATUS%)=(REPEAT) then Goto(repeat)
  6571. If(%NV%STATUS%)=(HEADER) then Goto(header)
  6572. If(%NV%STATUS%)=(QDISP) then Goto(qdisp)
  6573. Goto(repeat2)  ; *** IS THIS THE RIGHT LABEL? ***
  6574.  
  6575. *lnext
  6576. ;writeln(got to lnext...)
  6577. inc(i)
  6578. setequal(y=^:I^)
  6579. if (^:I^)=() then goto (done)
  6580. SetEqual(/nvme=%VAR%H)
  6581. AddVar(%VAR%I+-%NV%START%=h)
  6582. Inc(h)
  6583. if (&h)<(15) then
  6584.   SetEqual(h=%NV%ME%)
  6585.   Setnv(me=)
  6586.   goto(repeat2)
  6587.  endif
  6588. SetEqual(h=%NV%ME%)
  6589. SetEqual(/nvme=)
  6590. goto(done)
  6591. if (^:I^)=(DELETED) then goto(lnext)
  6592. goto (repeat2)
  6593.  
  6594. *qdisp
  6595. ;linefeed(1)
  6596. if (&r)=(10) then goto (endmr)
  6597. SetEqual(y=^:1^)
  6598. AddVar(%VAR%Y+-1=y)
  6599. SetHigh(%VAR%Y)
  6600. Return
  6601.  
  6602. *smore
  6603. setequal(x=1)
  6604. setequal(s=10)
  6605.  
  6606. *SetVars
  6607. SetEqual(i=^:I^)
  6608. ;getmail(%var%i,,%var%w)
  6609. Goto(AgMail)
  6610.  
  6611. *inv2
  6612. if (&s)=(10) then goto (abb)
  6613. say(&CR&&12&Invalid selection! Please try again...)
  6614. secpause(1)
  6615. flushout
  6616. if (&s)=(5) then goto (reading)
  6617. *abb
  6618. if (&z)=(0) then goto (brmail)
  6619. goto (endmr)
  6620.  
  6621. *firstmsg
  6622. Say(&CR&&12&This is the first message in your INBOX&CR&)
  6623. SecPause(1)
  6624. SetEqual(i=%NV%I%)
  6625. SetEqual(/nvselected=%VAR%I)
  6626. Goto(AGMail)
  6627.  
  6628. *lastmsg
  6629. Say(&CR&&12&This is the last message in your INBOX&CR&)
  6630. SecPause(1)
  6631. SetEqual(i=%NV%I%)
  6632. SetEqual(/nvselected=%VAR%I)
  6633. Goto(AGMail)
  6634.  
  6635. *endmr
  6636. say(&11&&CR& ══ &14&No more mail found for you to read, %FNAME%&11& ══&CR&)
  6637. enter
  6638. Return
  6639.  
  6640. *getHiLow
  6641. himsg
  6642. setequal(f=%ARESP%)
  6643. setnv(f01=%aresp%)
  6644. lowmsg
  6645. setequal(n=%ARESP%)
  6646. setnv(n=%aresp%)
  6647. ret
  6648.  
  6649. *Dequeue
  6650. DeQueue(q)
  6651. SetEqual(/RESP=%ARESP%)
  6652. Len(%VAR%Q)
  6653. SetEqual(l=%VAR%Q)
  6654. If(%VAR%L)=(0) then Goto(Disp2)
  6655. Goto(Process)
  6656.  
  6657. *enqueue
  6658. LoadSub(CONTROL\MACROS\enqueue.CTL)
  6659. Goto(dequeue)
  6660.  
  6661. *QuickFix
  6662.    AddVar(%NV%START%+-1=i)
  6663.    If(&i)<(1) then 
  6664.       SetEqual(i=%NV%TOTMAX%)
  6665.       SetEqual(/nvselected=%VAR%I)
  6666.       Inc(i)
  6667.       AddVar(%VAR%I+-%NV%SCREENLEN%=i)
  6668.       Inc(i)
  6669.       If(&i)<(1) then SetEqual(i=1)
  6670.       SetEqual(/nvstart=%VAR%I)
  6671.       SetEqual(/nvscreen=NORMAL)
  6672.       Goto(Header)
  6673.     endif
  6674.    SetEqual(/nvstart=%VAR%I)
  6675.    
  6676.    SetEqual(/nvscreen=NORMAL)
  6677.    SetEqual(/nvselected=%VAR%I)
  6678.    Goto(Header)
  6679.    
  6680. *CalcOffset
  6681.   SetEqual(/nvme2=%VAR%U)
  6682.   MultVar(%NV%SCREENLEN%*%NV%PAGE%=u)
  6683.   AddVar(%VAR%I+%VAR%U=i)
  6684.   SetEqual(u=%NV%ME2%)
  6685.   SetEqual(/nvme2=)
  6686.   Ret
  6687.  
  6688. *Inbox
  6689. SetEqual(r=10)
  6690. SetEqual(y=^:1^)
  6691. AddVar(%VAR%Y+-1=y)
  6692. SetHigh(%VAR%Y)
  6693. Inc(y)
  6694. himsg(/:LASTMSG/)
  6695. SetEqual(f=%ARESP%)
  6696. setnv(f01=%aresp%)
  6697. lowmsg(/:lastmsg/)
  6698. SetEqual(n=%ARESP%)
  6699. setnv(n=%aresp%)
  6700. SetEqual(i=%NV%START%)
  6701. setequal(/nvsnsearch=1)
  6702. SetEqual(/nvscreen=NORMAL)
  6703.  
  6704.     SetEqual(/nvscreen=NORMAL)
  6705.     setequal(y=^:I^)
  6706. Goto(repeat)
  6707.  
  6708. *Header
  6709.     SetEqual(/nvscreen=NORMAL)
  6710.     setequal(y=^:I^)
  6711.     Goto(Repeat2)
  6712.  
  6713. *LastPage
  6714. AddVar(%NV%SCREENLEN%+3=h)
  6715. AnsiGoto(1,%VAR%H)
  6716. writeln(Last page of inbox messages.)
  6717. setequal(c=13~You have reached the last page of Inbox messages.~Last Page~1~)
  6718. jump (okbox0)
  6719. SetEqual(h=%NV%ME%)
  6720. SetEqual(/nvme=)
  6721. Goto(GetKey)
  6722.  
  6723. *FirstPage
  6724. AddVar(%NV%SCREENLEN%+3=h)
  6725. SetEqual(h=%NV%ME%)
  6726. SetEqual(/nvme=)
  6727. SetEqual(/nvstart=1)
  6728. SetEqual(/nvselected=1)
  6729. SetEqual(i=1)
  6730. Goto(Header)
  6731.  
  6732. *GCHAR
  6733. COMPRINT(%NV%TEXT%)
  6734. SETEQUAL(A=0)
  6735. DO
  6736. COMKEY
  6737. ASCII
  6738. IF(%ARESP%)=(21) THEN GOTO(GCHAR)
  6739. INC(A)
  6740. IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET
  6741. IF(%ARESP%)=(&B) THEN RET
  6742. IF(&A)>(50) THEN RET
  6743. IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%)
  6744. DELAY18TH(2)
  6745. LOOP
  6746. *WIPC
  6747. LOCALKEY(1)
  6748. IFNOTTRUE(GOTO(NOLKEY))
  6749. SYSKEYCHECK
  6750. SETEQUAL(/RESP=)
  6751. SETEQUAL(/RESP=)
  6752. *NOLKEY
  6753. CCARRIER
  6754. IF(%ARESP%)=(0) THEN GOTO (NOC0)
  6755. CHECKSUM(%VAR%C)
  6756. SETEQUAL(B=6)
  6757. SETNV(TEXT=$%ARESP%%VAR%C%C%13%)
  6758. SETNV(PBACK=)
  6759. JUMP(GCHAR)
  6760. IF(%ARESP%)<>(6) THEN JUMP(GCHAR)
  6761. SETEQUAL(/IBUFF=%NV%PBACK%)
  6762. LEN(%NV%PBACK%)
  6763. SETEQUAL(/IBUFF0=%ARESP%)
  6764. RET
  6765. *NOC0
  6766. log(<<,Carrier lost.)
  6767. quitbbs
  6768.  
  6769. *nextp
  6770.  
  6771.    SetEqual(/nvme=%VAR%H)
  6772.    AddVar(%NV%TOTMAX%+-%NV%START%=h)
  6773.    If(&h)<(%NV%SCREENLEN%) then Goto(LastPage)
  6774.    AddVar(%NV%START%+%NV%SCREENLEN%=h)
  6775.    AddVar(%VAR%H+-1=h)
  6776.    SetEqual(/nvstart=%VAR%H)
  6777.    AddVar(%NV%SELECTED%+%NV%SCREENLEN%=h)
  6778.    AddVar(%VAR%H+-1=h)
  6779.    SetEqual(/nvselected=%VAR%H)
  6780.    If(%NV%SELECTED%)>(%NV%TOTMAX%) then SetEqual(/nvselected=%NV%TOTMAX%)
  6781.    SetEqual(h=%NV%ME%)
  6782.    SetEqual(/nvme=)
  6783.    SetEqual(i=%NV%START%)
  6784.    Goto(Header)
  6785.  
  6786. *wipAsk
  6787. multicheck
  6788. if (/:left/)<(4) then
  6789.   seek(%pbtemp%timewarn.%node%)
  6790.   iftrue(goto(ptw))
  6791.   zap(%pbtemp%timewarn.%node%)
  6792.   setequal(c=13~Less than four minutes remain for this session.~Time Allowance Low~1~)
  6793.   jump (okbox)
  6794.   setequal(/resp=)
  6795. endif
  6796. *ptw
  6797. setequal(/resp=)
  6798. findfirst(%cpat%*.%node%)
  6799. if (%aresp%)=() then if (%aresp%)<>(0) then goto (getinput)
  6800. writeln(Incomming message from another node:)
  6801. setnv(fil=%cpat%%aresp%)
  6802. inpopen(%cpat%%aresp%)
  6803. inpread
  6804. writeln(%aresp%)
  6805. setequal(c=13~%aresp%)
  6806. fendif(nomore)
  6807. do
  6808. inpread
  6809. writeln(%aresp%)
  6810. setequal(c=%var%c - %aresp%)
  6811. fendif(nomore)
  6812. loop
  6813. *getinput
  6814. Comlineinput(%var%y,l)
  6815. ret
  6816. *okbox
  6817. strippba(%var%c)
  6818. setequal(c=%aresp%)
  6819. Jump (wipc)
  6820. comlineinput(180,l)
  6821. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  6822. if (%resp%)=() then goto (okbox)
  6823. setequal(c=0A~)
  6824. goto (wipc)
  6825. *nomore
  6826. setequal(c=%var%c~Instant Message~1~)
  6827. inpclose
  6828. kill (%nv%fil%)
  6829. jump (okbox)
  6830. goto(ptw)
  6831.  
  6832. *okbox0
  6833. Jump (wipc)
  6834. comlineinput(180,l)
  6835. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  6836. if (%resp%)=() then goto (okbox)
  6837. ret
  6838. DOORSDOCKDOORS MENU - Powerboard 2.00 - Quick Notes
  6839.  
  6840. On Powerboard, to install a door, all you need to do is to make a
  6841. batch file in the main BBS directory called DOOR plus the number
  6842. plus .BAT.  Powerboard will then look for that file for doors.
  6843.  
  6844. Do not attempt to add options to the doors menu for doors - PB will
  6845. auto detect the DoorX.bat files when you update the displays (by
  6846. loading the DOORS.MNU in Menucfg then exiting, or by pressing alt-u
  6847. from the Menucfg main menu) and will add them to the output screen.
  6848. Refer to Door.Bt for more info.           PRESS ANY KEY TO CONTINUE
  6849. QUESDOC,QUESTIONNAIRES MENU - Powerboard 2.00 - Quick Notes
  6850.  
  6851. Questionnaires on Powerboard can contain any or all control file
  6852. commands.  Questionnaires reside in the QUES\ directory and are
  6853. called QUEST plus the number plus .QUE.   Answer files are called
  6854. QUEST plus the number plus .ANS.
  6855.  
  6856. Powerboard will detect the questionnaires and will add them to the
  6857. display screens automatically when you update the displays for
  6858. the questionnaires menu (by loading Ques.mnu then exiting, or by
  6859. pressing alt-u at the Menucfg main menu). PRESS ANY KEY TO CONTINUE
  6860. BULLETDOCNBULLETINS MENU - Powerboard 2.00 - Quick Notes
  6861.  
  6862. On Powerboard, to install a bulletin, simply create a display screen
  6863. in the DISPLAY\ directory called BULL plus the number plus .ASC.  You
  6864. can also have BULL + number + .ANS and + .RIP.  i.e. BULL1.ASC.
  6865.  
  6866. Powerboard will automatically detect these bulletins (bull1.asc,
  6867. bull2.asc, etc) and will add them to the bulletins menu display
  6868. screen automatically when you update the displays (by loading
  6869. BULLET.MNU in Menucfg then pressing ESC, or by pressing alt-u from
  6870. the Menucfg main menu).                    PRESS ANY KEY TO CONTINUE
  6871. DOORSDEF Demo Door
  6872. BULLETDEFURequiem
  6873. About PB
  6874. Something
  6875. Hey dude
  6876. Is there really an opt 5?
  6877. hello
  6878. ok
  6879. opt 8
  6880. QUESDEFSysops
  6881. READCTLº%loadsub(control\exitwip.ctl)
  6882. *Disp2
  6883. delimit( ,;)
  6884. clearscr
  6885. ;if (%GRAPHICS%)=(RIP) then comprint(!|*|b0000ZII2280S0002X000|#|#|#)
  6886. jump(initrip)
  6887.   if (%GRAPHICS%)=(RIP) then defpause(!|1K|S010F|k00|N01|N00|KB4QEB4QE|KB4QEB4QE|S0100|K00I210QE|J10|n2000|M08|fZKQO|c0F|=001EKF01|W00|Y00000209|1B00000207QI03010E0F080700000F07000000|1U00I26YKU0000<>Stop<>S|1B00000207QI03010E0F080700000F07000000|1U6YI2DWKU0000<>Nonstop<>N|1B00000207QI03010E0F080700000F07000000|1UDWI2KUKU0000<>Continue<>C|#|#|#)
  6888.   if (%GRAPHICS%)<>(RIP) then DefPause($7$&0&Send more text$0$&3& &11&S&3&:Stop, &11&N&3&:Nonstop or &11&C&3&:Continue?&12&: &7&)
  6889.   defPif(s:stop,n:nonstop)
  6890.  
  6891. setequal(n=1)
  6892. setequal(x=1)
  6893. *read
  6894. ;if (%nv%wipmode%)=(1) then loadmem(control\macros\readmwip.ctl)
  6895. setequal(r=0)
  6896. setequal(w=1)
  6897. setactivity(Reading Mail)
  6898. *rmail
  6899. notif (&n)=(1) then goto (endmr) ;if they came back...
  6900. setequal(n=0)
  6901. *brmail
  6902. setequal(/nvsnsearch=0)
  6903. linefeed(1)
  6904. jump(getHiLow)
  6905. setequal(y=%VAR%F)
  6906. setequal(z=0)
  6907.  
  6908. len(%nv%queue%)
  6909. notif (%aresp%) = (0) then 
  6910.         setequal(/resp=%nv%queue%)       
  6911.         goto(stk)
  6912. endif
  6913.  
  6914. say(&15&Read Mail Options:&CR&)
  6915. say(&3&Message number (&11&%var%n&3&) through (&11&%var%f&3&) or)
  6916. say((&11&L&3&)ast Read, Mail addressed to (&11&Y&3&)ou, (&11&R&3&)everse Order, (&11&S&3&)earch for Text,)
  6917. say((&11&M&3&)arked Mail, (&11&H&3&)elp, (&11&Q&3&)uit&CR&)
  6918. setequal(z=0)
  6919. numbmenuask(%CRON%&3&Which message number or option would you like?&12&: &15&*)
  6920. bignicesay(m:marked,r:Reverse,q:quit,L:Since last read,s:Search,y:your mail,h:help)
  6921.  
  6922. *stk
  6923. setequal(a=%resp%)
  6924. DEQUEUE(a)
  6925. setequal(/nvqueue=%var%a)
  6926. setequal(/resp=%aresp%)
  6927. bigif(m:marked,r:rev,l:since,s:search,y:Your,h:help,<CR>:qt,q:qt)
  6928. number(%RESP%)
  6929. if (%RESP%)=() then goto (ret0)
  6930. if (%RESP%)=(0) then goto (inv2)
  6931. iftrue (goto (nread))
  6932. goto (inv2)
  6933. *qt
  6934. goto (ret0)
  6935.  
  6936. *help
  6937. display(display\help\read,/:SEC/)
  6938. goto (brmail)
  6939.  
  6940. *nread
  6941. loadsub(control\macros\nread.ctl)
  6942. if (&g)=(1) then goto (inv2)
  6943. goto (repeat)
  6944.  
  6945. *since
  6946. loadsub(control\macros\since.ctl)
  6947. if (&g)=(1) then goto (inv2)
  6948. goto (repeat)
  6949.  
  6950. *repeat
  6951. getmail(%var%y,,%var%w)
  6952. *aGMail
  6953. setequal(s=0)
  6954. if (%MsgNumber%)=(0) then goto (0next)
  6955. setequal(z=10)
  6956. notif (%ARESP%)=(Yes) then goto (nope)
  6957. *banyway
  6958. clearscr
  6959. if (%GRAPHICS%)=(RIP) then jump(InitRip)
  6960.  
  6961. setequal(x=0)
  6962. setequal(s=0)
  6963. nicedate(%MSGSNTD%)
  6964. say(&11&Message &3&%MsgNumber%&11& of &3&%var%f&11& was sent on&3& %ARESP%&11& at &3&*)
  6965. nicetime(%MSGSNTT%)
  6966. nicesay(%ARESP%&14&&CR&        Sent by: &3&%MSGFROM%&CR&&14&   Addressed to: &3&%MSGTO% )
  6967. say(&14&      Regarding: &3&%MSGDESC% )
  6968. nicesay(&14&         Status: &3&%MSGPVT%, %MSGRCVD%, Read %MSGRDTIMES% times, %REPLIES%)
  6969. spause(8)
  6970. if (%MSGATTACH%)=(Y) then 
  6971.   if (%MSGPVT%)=(PRIVATE) then setequal(s=10)
  6972.   say (&12&* &14&File Attached: &3&%MSGATTNAME% *)
  6973.   If(%STOREDEXT%)=() then size(%ATTPAT%%ATTN0%.%ATTEXT%)
  6974.   NotIf(%STOREDEXT%)=() then size(%ATTPAT%%ATTN0%.%STOREDEXT%)
  6975.   Say((%ARESP% bytes -- *)
  6976.   if (%local%)=(TRUE) then goto (localatt)
  6977.   say(Time to download: *)
  6978.   TTime(%ARESP%)
  6979.   Say(%ARESP%))
  6980.  endif
  6981. *bk0
  6982. if (&s)=(10) then spause(9)
  6983. say(&8&────────────────────────────────────────────────────────────────────────&CR&&7&)
  6984. showtxt
  6985. say()
  6986. *reading
  6987. If (&s)=(10) then If (%SEC%)=(100) then Display(display\rdnga100)
  6988. If (&s)=(10) then NotIf (%SEC%)=(100) then Display(display\rdnga)
  6989. NotIf (&s)=(10) then If (%SEC%)=(100) then Display(display\rdng100)
  6990. NotIf (&s)=(10) then NotIf (%SEC%)=(100) then Display(display\rdng)
  6991. jump(getHiLow)
  6992. numbmenuask (%CRON%&15&Which reading option or message number?&12&: &14&*)
  6993. bignicesay(w:switch direction,c:compose message,m:mark,e:edit,q:quit,r:reply,s:Show again,n:next,f:forward thread,p:previous thread,k:kill,o:Forward,h:help)
  6994. if (%msgattach%)=(Y) then bignicesay(d:Download Attach)
  6995. If (%SEC%)=(100) then BigNiceSay(u:User Record)
  6996. bigif (w:swap,c:compose,m:mark,e:edit,o:forw,q:qdisp,s:aGMail,r:reply,p:previous,f:follow,k:kill,n:next,h:help2,u:userrec)
  6997. if (%msgattach%)=(Y) then bigif (d:downatt)
  6998. if (%RESP%)=(<CR>) then goto (next)
  6999. number(%RESP%)
  7000. iftrue (goto (nread))
  7001. setequal(s=5)
  7002. goto (inv2)
  7003.  
  7004. *swap
  7005. ;switch reading directions (-1 is reverse read, 1 is forward read)
  7006. MultVar(%VAR%w*-1=w)
  7007. Say(&CR&&12&You are now reading in the *)
  7008. If(&w)=(1) then Say(forward direction.)
  7009. NotIf(&w)=(1) then Say(reverse direction.)
  7010. Say()
  7011. Goto(reading)
  7012.  
  7013. *mark
  7014. loadsub(control\macros\markmess.ctl)
  7015. goto (repeat)
  7016.  
  7017. *help2
  7018. display(display\help\readn,/:SEC/)
  7019. goto (reading)
  7020.  
  7021. *downatt
  7022. zap(%pbtemp%varr.%NODE%,%var%R)
  7023. linefeed(1)
  7024. loadsub(control\DOWNATT.CTL)
  7025. goto (aGMail)
  7026.  
  7027. *forw
  7028. loadsub(control\macros\messforw.ctl)
  7029. if (&g)=(1) then goto (inv2)
  7030. goto (repeat)
  7031.  
  7032. *your
  7033. loadsub(control\macros\your.ctl)
  7034. if (%ARESP%)=(ERROR) then goto (endmr)
  7035. goto (snext)
  7036.  
  7037. *search
  7038. loadsub(control\macros\msearch.ctl)
  7039. if (%RESP%)=(Q) then goto (endmr)
  7040. notif (%ARESP%)=(ERROR) then goto (snext)
  7041. goto (endmr)
  7042.  
  7043. *marked
  7044. setequal(w=1)
  7045. setequal(/nvreadtype=1)
  7046. setequal(u=0)
  7047. goto (next)
  7048.  
  7049. *userrec
  7050.  EnufSec(100)
  7051.  IfNotTrue(Goto(inv2))
  7052.  LoadSub(control\macros\savevars.ctl)
  7053.  *WhichOne
  7054.  Say(&CR&&15&Load User Record of person message is Addressed (&12&T&15&)o or Sent (&12&B&15&)y? &14&*)
  7055.  MenuKey(%CRON%*)
  7056.  BigNiceSay(T:To,B:From)
  7057.  BigIf(T:UTo,B:UFrom,<CR>:AGMail)
  7058.  Say(&CR&&12&Invalid selection. Please try again...)
  7059.  Goto(WhichOne)
  7060.  *UTo
  7061.  SetNv(editor=%MSGTO%)
  7062.  Goto(LoadRec)
  7063.  *UFrom
  7064.  SetNv(editor=%MSGFROM%)
  7065.  *LoadRec
  7066.  ClearScr
  7067.  SetEqual(l=1)
  7068.  LoadSub(control\ued1.ctl)
  7069.  LoadSub(control\macros\restvars.ctl)
  7070.  SetEqual(/nveditor=)
  7071.  
  7072.  Goto(AGMAil)
  7073.  
  7074. *rev
  7075. if (&y)=(0) then goto (inv2)
  7076. setequal(y=%var%f)
  7077. setequal(w=-1)
  7078. if (&y)=(0) then goto (inv2)
  7079. goto (repeat)
  7080.  
  7081. *snext
  7082. setequal(/nvSNsearch=1)
  7083. inc(u)
  7084. setequal(y=^:U^)
  7085. if (^:U^)=(MOREMAIL) then loadsub(control\macros\fmore.ctl)
  7086. if (^:U^)=() then goto (endmr)
  7087. goto (repeat)
  7088.  
  7089. *lnext
  7090. inc(u)
  7091. setequal(y=^:U^)
  7092. if (^:U^)=() then goto (endmr)
  7093. goto (repeat)
  7094.  
  7095. *marknext
  7096. inc(u)
  7097. setequal(y=nv%m%var%u%)
  7098. setequal(y=%%var%y%prc%)
  7099. cmpval(%nv%marked%,%var%u)
  7100. iftrue (goto (endmr))
  7101. goto (repeat)
  7102.  
  7103. *qdisp
  7104. linefeed(1)
  7105. if (&r)=(10) then goto (endmr)
  7106. goto (ret0)
  7107.  
  7108. *0next
  7109. if (&r)=(10) then goto (lnext)
  7110. if (&r)=(20) then goto (snext)
  7111. if (&y)=(0) then goto (inv2)
  7112. if (&y)=(-1) then goto (inv2)
  7113. addvar(%var%y+%var%w=y)
  7114. if (&y)<=(0) then goto (inv2)
  7115. if (%var%y)>(%var%f) then goto (inv2)
  7116. addvar(%msgrec2%+%var%w=t)
  7117. getmailrec(%var%t,,%var%w)
  7118. if (%msgnumber%)=(%var%y) then goto (aGMail)
  7119. goto (repeat)
  7120.  
  7121. *smore
  7122. setequal(x=1)
  7123. setequal(s=10)
  7124.  
  7125. *next
  7126. if (%nv%readtype%)=(1) then goto (marknext)
  7127. if (&r)=(10) then goto (lnext)
  7128. if (&s)=(0) then goto (smore)
  7129. if (%nv%snsearch%)=(1) then goto (snext)
  7130. if (&y)<=(0) then goto (inv2)
  7131. if (&y)=(-1) then goto (inv2)
  7132. notif (%MRESP%)=() then goto (sknext)
  7133. NextMsg(%var%y,%var%w)
  7134. if (%aresp%)<>(ERROR) then if (%aresp%)<>(0) then goto (nmr)
  7135. addvar(%var%y+%var%w=y)
  7136. if (&y)<=(0) then goto (inv2)
  7137. *psi
  7138. if (%var%y)>(%var%f) then goto(inv2)
  7139. if (%var%y)<(%var%n) then goto(inv2)
  7140. addvar(%msgrec2%+%var%w=t)
  7141. getmailrec(%var%t,,%var%w)
  7142. if (%msgnumber%)=(%var%y) then goto (aGMail)
  7143. goto (repeat)
  7144. *sknext
  7145. setequal(y=%MRESP%)
  7146. if (&y)<=(0) then goto (inv2)
  7147. if (%var%y)>(%var%f) then goto(inv2)
  7148. goto (repeat)
  7149.  
  7150. *kill
  7151. loadsub(control\macros\killmess.ctl)
  7152. if (&g)=(0) then goto (repeat)
  7153. goto (next)
  7154.  
  7155. *follow
  7156. if (%REPLIES%)=(NO REPLIES) then goto (nomore)
  7157. setequal(s=5)
  7158. setequal(q=%MSGPREV%)
  7159. if (%MSGPREV%)=(0) then setequal(q=%var%y)
  7160. nextforward(%var%q,%var%y,/:LASTMSG/)
  7161. if (%ARESP%)=(0) then goto (nomore)
  7162. setequal(y=%ARESP%)
  7163. goto (repeat)
  7164. *nomore
  7165. say(&CR&&12&There are no more replies to this message.&CR&)
  7166. goto (reading)
  7167.  
  7168. *previous
  7169. setequal(s=5)
  7170. if (%MSGPREV%)=(0) then goto (inv2)
  7171. setequal(y=%MSGPREV%)
  7172. goto (repeat)
  7173.  
  7174. *edit
  7175. loadsub(control\macros\edit.ctl)
  7176. ;goto (repeat)
  7177. jump(getHiLow)
  7178. goto(disp2)
  7179.  
  7180. *reply
  7181. loadsub(control\macros\reply.ctl)
  7182. goto (repeat)
  7183.  
  7184. *compose
  7185. LoadSub(control\macros\savevars.ctl)
  7186. Loadsub(control\macros\enter.ctl)
  7187. LoadSub(control\macros\restvars.ctl)
  7188. Goto (repeat)
  7189.  
  7190. *inv2
  7191. if (&s)=(10) then goto (abb)
  7192. say(&CR&&12&Invalid selection! Please try again...)
  7193. setequal(/nvqueue=)
  7194. secpause(1)
  7195. flushout
  7196. if (&s)=(5) then goto (reading)
  7197. *abb
  7198. if (&z)=(0) then goto (brmail)
  7199. goto (endmr)
  7200.  
  7201. *nope
  7202. if (%ARESP%)=(ERROR) then goto (next)
  7203. if (%ARESP%)=(DELETED) then goto (next)
  7204. enufsec(100)
  7205. iftrue (goto (banyway))
  7206. goto (next)
  7207.  
  7208. *endmr
  7209. say(&11&&CR& ══ &14&No more mail found for you to read, %FNAME%&11& ══&CR&)
  7210. enter
  7211. goto (ret0)
  7212.  
  7213. *getHiLow
  7214. himsg
  7215. setequal(f=%ARESP%)
  7216. lowmsg
  7217. setequal(n=%ARESP%)
  7218. ret
  7219.  
  7220. *nmr
  7221.   if (%ARESP%)=() then goto (inv2)
  7222.   setequal(y=%aresp%)
  7223. goto(psi)
  7224. goto (reading)
  7225. *abb
  7226. if (&z)=(0) then goto (brmail)
  7227. goto (endmr)
  7228.  
  7229. *nope
  7230. if (%ARESP%)=(ERROR) then goto (next)
  7231. if (%ARESP%)=(DELETED) then goto (next)
  7232. enufsec(100)
  7233. iftrue (goto (banyway))
  7234. goto (next)
  7235.  
  7236. *endmr
  7237. say(&11&&CR& ══ &14&No more mail found for you to read, %FNAME%&11& ══&CR&)
  7238. enter
  7239. goto (ret0)
  7240.  
  7241. *getHiLow
  7242. himsg
  7243. setequal(f=%ARESP%)
  7244. lowmsg
  7245. setequal(n=%ARESP%)
  7246. ret
  7247.  
  7248. *nmr
  7249.   if (%ARESP%)=() then goto (inv2)
  7250.   setequal(y=%aresp%)
  7251. goto(psi)
  7252.  
  7253. *InitRip
  7254. if (%graphics%)=(RIP) then
  7255.   say(!|*|1K|S010F|k00|N01|N00|KB4QEB4QE|KB4QEB4QE|S0100|K00I210QE|J10|n2000|M08)
  7256.   say(!|fZKQO|b0000ZII2280S0002X000|#|#|#)
  7257. endif
  7258. ret
  7259.  
  7260. *ret0
  7261. if (%nv%wipe%)=() then return
  7262. setnv(wipe=)
  7263. setnv(wipmode=1)
  7264. return
  7265.  
  7266. *localatt
  7267. if (%storedext%)=() then say (Stored in %ATTPAT%%ATTN0%.%ATTEXT%))
  7268. if (%storedext%)<>() then say (Stored in %ATTPAT%%ATTN0%.%STOREDEXT%))
  7269. goto (bk0)
  7270. WIPWARNCTL█setequal(q=0)
  7271. if (%nv%wtext%)=() then setnv(wtext=If you do not enter your account information soon, we will disconnect you.)
  7272. *st0
  7273. if (%nv%tries%)=(1) then loadmem(control\timeout.ctl)
  7274. loadsub(control\wipsound.ctl,setnv(file=wakeup!.wav))
  7275. writeln(User not responding.  Timeout warning sent to remote ...)
  7276. setequal(c=13~%nv%wtext%~Timeout Warning~1~)
  7277. setnv(wtext=)
  7278. Jump (wipc)
  7279. comlineinput(180,l)
  7280. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  7281. setequal(/resp=)
  7282. return
  7283.  
  7284.  
  7285.  
  7286. *GCHAR
  7287. COMPRINT(%NV%TEXT%)
  7288. SETEQUAL(A=0)
  7289. DO
  7290. COMKEY
  7291. ASCII
  7292. IF(%ARESP%)=(21) THEN GOTO(GCHAR)
  7293. INC(A)
  7294. IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET
  7295. IF(%ARESP%)=(&B) THEN RET
  7296. IF(&A)>(%nv%wipwait%) THEN RET
  7297. IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%)
  7298. DELAY18TH(2)
  7299. LOOP
  7300. *WIPC
  7301. LOCALKEY(1)
  7302. IFNOTTRUE(GOTO(NOLKEY))
  7303. SYSKEYCHECK
  7304. SETEQUAL(/RESP=)
  7305. SETEQUAL(/RESP=)
  7306. *NOLKEY
  7307. CCARRIER
  7308. IF(%ARESP%)=(0) THEN GOTO (NOC0)
  7309. CHECKSUM(%VAR%C)
  7310. SETEQUAL(B=6)
  7311. SETNV(TEXT=$%ARESP%%VAR%C%C%13%)
  7312. SETNV(PBACK=)
  7313. JUMP(GCHAR)
  7314. if(%ARESP%)<>(6) THEN FLUSHOUT
  7315. IF(%ARESP%)<>(6) THEN JUMP(GCHAR)
  7316. setequal(c=%aresp%)
  7317. SETEQUAL(/IBUFF=%NV%PBACK%)
  7318. LEN(%NV%PBACK%)
  7319. SETEQUAL(/IBUFF0=%ARESP%)
  7320. SETEQUAL(/ARESP=%VAR%C)
  7321. RET
  7322. *NOC0
  7323. log(<<,Carrier lost.)
  7324. quitbbs
  7325. WELCHELPCTLcwriteln()
  7326. writeln(SYSOP: To log on for remote user: Type "name;" followed by the user's name)
  7327. writeln(and press ENTER, then type "password;" followed by the password and press)
  7328. writeln(ENTER.  Then type "logon" and press ENTER.)
  7329. writeln()
  7330. writeln(Example:)
  7331. writeln(name;Scott Brown)
  7332. writeln(password;sysopspass)
  7333. writeln(logon)
  7334. writeln()
  7335. return
  7336. EWIPINFOCTLZ *getinfo
  7337.  
  7338. if (%nv%noinfo%)=(1) then
  7339. setnv(noinfo=)
  7340. goto(retn)
  7341. endif
  7342. setnv(tries=0)
  7343. *geti
  7344. inc(q)
  7345. writeln(Waiting for user's response ...)
  7346. setequal(y=10)
  7347. jump (wipask)
  7348. if (%nv%wiprestreq%)=(1) then goto (notemplate)
  7349. if (%aresp%)<>(24) then goto (GotAResp)
  7350. setequal(c=0A~)
  7351. jump (wipc)
  7352. setequal(y=20)
  7353. jump (wipask)
  7354. if (%nv%wiprestreq%)=(1) then goto (notemplate)
  7355. if (%aresp%)<>(24) then goto (GotAResp)
  7356. setequal(c=0A~)
  7357. jump(wipc)
  7358. setequal(y=98)
  7359. jump (wipask)
  7360. if (%nv%wiprestreq%)=(1) then goto (notemplate)
  7361. if (%aresp%)=(24) then loadsub(control\wipwarn.ctl)
  7362. *GotAResp
  7363. setequal(o=%resp%)
  7364. *ao
  7365. ascii
  7366. setequal(y=%aresp%)
  7367. if (%var%y)=(6) then get (&o,2,1000)
  7368. if (%var%y)<>(6) then get (&o,1,1000)
  7369. setequal(o=%aresp%)
  7370. len(%aresp%)
  7371. if (%aresp%)=(1) then if (%var%y)=(6) then setequal(o=)
  7372. setequal(/resp=%var%o)
  7373. if (%var%y)=(6) then if (%var%o)<>() then goto (ao)
  7374. setequal(b=%resp%)
  7375. *NoCmnd
  7376. setequal(/resp=%var%b)
  7377. ccarrier
  7378. if (%aresp%)=(0) then quitbbs
  7379. if (%var%q)=(2) then return
  7380. if (%var%b)=() then goto (geti)
  7381. setnv(tries=0)
  7382. writeln(response = "%resp%")
  7383. goto(retn)
  7384.  
  7385.  
  7386. *GCHAR
  7387. COMPRINT(%NV%TEXT%)
  7388. SETEQUAL(A=0)
  7389. DO
  7390. COMKEY
  7391. ASCII
  7392. IF(%ARESP%)=(21) THEN GOTO(GCHAR)
  7393. INC(A)
  7394. IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET
  7395. IF(%ARESP%)=(&B) THEN RET
  7396. IF(&A)>(%nv%wipwait%) THEN RET
  7397. IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%)
  7398. DELAY18TH(2)
  7399. LOOP
  7400. *WIPC
  7401. LOCALKEY(1)
  7402. IFNOTTRUE(GOTO(NOLKEY))
  7403. SYSKEYCHECK
  7404. SETEQUAL(/RESP=)
  7405. SETEQUAL(/RESP=)
  7406. *NOLKEY
  7407. CCARRIER
  7408. IF(%ARESP%)=(0) THEN GOTO (NOC0)
  7409. CHECKSUM(%VAR%C)
  7410. SETEQUAL(B=6)
  7411. SETNV(TEXT=$%ARESP%%VAR%C%C%13%)
  7412. SETNV(PBACK=)
  7413. JUMP(GCHAR)
  7414. if(%ARESP%)<>(6) THEN FLUSHOUT
  7415. IF(%ARESP%)<>(6) THEN JUMP(GCHAR)
  7416. setequal(c=%aresp%)
  7417. SETEQUAL(/IBUFF=%NV%PBACK%)
  7418. LEN(%NV%PBACK%)
  7419. SETEQUAL(/IBUFF0=%ARESP%)
  7420. SETEQUAL(/ARESP=%VAR%C)
  7421. RET
  7422. *NOC0
  7423. log(<<,Carrier lost.)
  7424. quitbbs
  7425.  
  7426. *PARSEWIP
  7427. CLEARMEM
  7428. SETEQUAL(a=0)
  7429. INPOPEN(%NV%WIPFILE%)
  7430. DO
  7431. FENDIF(DONEP)
  7432. INPREAD
  7433. if (%ARESP%)=([Form]) THEN GOTO (READFORM)
  7434. LOOP
  7435. *READFORM
  7436. SETEQUAL(C=0)
  7437. DO
  7438. FENDIF(DONEP)
  7439. INPREAD
  7440. SETEQUAL(B=%ARESP%)
  7441. GET(&B,5,2)
  7442. if (%ARESP%)=(0I) THEN JUMP (RRESOURCE)
  7443. if (%ARESP%)=(1T) THEN JUMP (RRESOURCE)
  7444. if (%ARESP%)=(0B) THEN JUMP (RRESOURCE)
  7445. LOOP
  7446. *DONEP
  7447. INPCLOSE
  7448. SETNV(HIGHNDX=%VAR%C)
  7449. RET
  7450.  
  7451. *0FC
  7452. flushout
  7453. SETEQUAL(C=0F~%VAR%P~%ARESP%~1~%VAR%Z~%VAR%S~)
  7454. GOTO(WIPC)
  7455.  
  7456. *RRESOURCE
  7457. SETEQUAL(Y=1)
  7458. IF (%ARESP%)=(0I) THEN SETEQUAL(Y=0)
  7459. SETEQUAL(W=%ARESP%)
  7460. DELIMIT(`)
  7461. DEQUEUE(B)
  7462. DEQUEUE(B)
  7463. SETEQUAL(X=%ARESP%)
  7464. SETEQUAL(S=)
  7465. IF(&W)<>(0B) THEN GOTO(NOT)
  7466. SETEQUAL(v=0)
  7467. *DE
  7468. DEQUEUE(B)
  7469. INC(V)
  7470. IF (&V)<(11) THEN GOTO(DE)
  7471. SETEQUAL(S=%ARESP%)
  7472. *NOT
  7473. INC(C)
  7474. SETEQUAL(Z=%VAR%X)
  7475. GET(&Z,1,5)
  7476. IF (%ARESP%)=(nosel) THEN SETEQUAL(Y=0)
  7477. IF (&Y)=(0) THEN SETEQUAL(Z=)
  7478. SETEQUAL(^%VAR%C=%VAR%X`%VAR%Y`%VAR%Z`%VAR%S)
  7479. RET
  7480.  
  7481. *retn
  7482. setnv(wippath=)
  7483. return
  7484.  
  7485. *wipAsk
  7486. loadsub(control\wipask.ctl)
  7487. ret
  7488.  
  7489. *do4over
  7490. flushout
  7491. goto (getrec0)
  7492. OPENCTL &CarrierL(Y)
  7493. setequal(/name=)
  7494. setequal(/alias=)
  7495. DeLimit( )
  7496. SetEqual(q=)
  7497.  
  7498. jump (InitSetup)
  7499. CarrierL(N)
  7500.  
  7501. Jump (GraphDetect)
  7502.  
  7503. if (%local%)<>(TRUE) then log(--,Remote Connect ----------------------)
  7504. *DWelc
  7505.  
  7506.  
  7507. if (%graphics%)=(WIP) then goto (WipW)
  7508. IF (%GRAPHICS%)=(RIP) THEN COMPRINT(!|*|#|#|#%C%13%%C%10%)
  7509.   Display (DISPLAY\WELCOME)
  7510.   if (%graphics%)=(RIP) then comprint (H)
  7511.  
  7512.     SetEqual (T=0)
  7513.  
  7514.     *CONT
  7515.  
  7516.     Inc (T)
  7517.     SetEqual(B=)
  7518.  
  7519. if (%var%t)=(5) then loadmem(control\no.ctl)
  7520.  
  7521.  
  7522. *CONT
  7523.  
  7524. inc(t)
  7525. if (%VAR%T)=(5) then loadmem(control\no.ctl)
  7526.  
  7527.  if (%graphics%)=(WIP) then goto (nameE)
  7528.  
  7529.  *AskForName
  7530.  If(%HANDLE%)=(Yes) then Say(&CR&&14&Aliases are allowed on this BBS. You must login under your alias.)
  7531.  SetFill()
  7532.  flushout
  7533.  If(%HANDLE%)<>(Yes) then MenuAsk (%NOCR%%MIN%1%&CR&&15&Please enter your name&12&: &14&*)
  7534.  If(%HANDLE%)=(Yes) then MenuAsk (%NOCR%%MIN%1%&CR&&15&Please enter your login name&12&: &14&*)
  7535.  SetEqual (a=%RESP%)
  7536.  Get(&a,1,1)
  7537.  If(%ARESP%)=(?) then
  7538.    SetNv(helpoption=110)
  7539.    Jump(OlHelp) ; if need help
  7540.    Goto(AskForName)
  7541.   endif
  7542.  SetEqual (b=)
  7543.  Find (%VAR%A, )
  7544.  NotIf (%ARESP%)=(0) then Goto (CHECK)
  7545.  If(%HANDLE%)=(Yes) then Goto(CHECK) ;allow one-word handles
  7546.  MenuAsk (%MIN%1%&CR&&15&             Last name&12&: &14&*)
  7547.  SetEqual (b=%RESP%)
  7548.  
  7549. *CHECK
  7550.  setequal(d=%var%a)
  7551.  len(%var%b)
  7552.  notif (%aresp%)=(0) then setequal(d=%var%a %var%b)
  7553. *nameE
  7554.  Namequal (/name=%VAR%D)
  7555.  nameok
  7556.  if (%ARESP%)<>(Yes) then goto (Retryname)
  7557.  SetEqual (d=%NAME%)
  7558.  
  7559. *STSEEK
  7560.  SetEqual(/ndx=USERFILE.NDX)
  7561.  If(%HANDLE%)=(Yes) then SeekType(a)
  7562.  If(%HANDLE%)<>(Yes) then SeekType(n)
  7563.  SeekUser (%NAME%)
  7564.  if (%ARESP%)=(No) then goto (NotFound)
  7565.  If (%NDLOCK%) = (1) then Loadmem(control\lockout.ctl)
  7566.  
  7567.  MenuEqual (e=%NDPASS%)
  7568.  setequal(/pass=%NDPASS%)
  7569.  SetEqual (f=0)
  7570.  
  7571. ; Say(&CR&&15&Are you the "%NDNAME%" from "%NDFROM%"? *)
  7572. ; jump (YesNo)
  7573. ; If (%RESP%)=(No) then Goto (dupname)
  7574.  if (%graphics%)=(WIP) then goto (ckPass)
  7575.  Say(&CR&&11&Dots will echo instead of actual letters of your password.)
  7576.  
  7577. *PASSWORD
  7578.  Say(&15&What is your password?&12& (                    )&14&*)
  7579.  Back(21)
  7580.  cGetPass (%MIN%1%%LEN%20%.)
  7581.  SetEqual(z=%RESP%)
  7582.  Get(%RESP%,1,1)
  7583.  If(%ARESP%)=(?) then
  7584.    SetNv(e=%VAR%E)
  7585.    SetNv(helpoption=119)
  7586.    Jump(olhelp)
  7587.    SetEqual(e=%NV%E%)
  7588.    SetNv(e=)
  7589.    Goto(Password)
  7590.   endif
  7591.  *ckpass
  7592.  If (&z) = (%VAR%E) then Goto (Ok)
  7593.  inc(f)
  7594.  Log (--,(%NAME%) Password (%RESP%) incorrect...)
  7595.  if (%graphics%)=(WIP) then goto (retryname)
  7596.  If (%VAR%F) = (3) then Goto (lasttry)
  7597.  If (%VAR%F) = (4) then Goto (badpass)
  7598.  beep(1)
  7599.  Say(&CR&&12&Password incorrect. Try again please...&CR&)
  7600.   goto (password)
  7601.  
  7602. *LASTTRY
  7603.  Say(&CR&&12&This is your last try! Next time you will be logged off!&CR&)
  7604.  goto (password)
  7605.  
  7606. *NOTFOUND
  7607.  loadmem(control\notfound.ctl)
  7608.  
  7609. *TRYAGAIN
  7610.  Say(&CR&&12&Try again ...)
  7611.  Log (--,Attempted logon as %NAME%)
  7612.  Goto (Cont)
  7613.  
  7614. *DUPNAME
  7615.  Display (display\DUPE)
  7616.  Goto (Cont)
  7617.  
  7618. *BADPASS
  7619.  LoadMem(control\badpass.ctl)
  7620.   
  7621. *OK
  7622.  SetActivity (Logging On...)
  7623.  Goto (Connect)                             ;password's OK so let them in...
  7624.  
  7625. *CONNECT
  7626. if (%graphics%)=(RIP) then say(!|*|#|#|#)
  7627.  UserLogin(%NDNUMB%,User %NDNUMB%: %NDNAME% Logged On (%BAUD%))
  7628.  If (%ARESP%)=(ALREADY ON) then Goto (alreadyon)
  7629.  If (/:SEC/)=(%SYSSEC%) then Goto (syssec)
  7630. ; if (%sec%)=(10) then if (/:timeson/)>(9) then loadsub(control\overl.ctl)
  7631.  
  7632. *CONCLR
  7633.  ;ClearScr
  7634.  SelArea(1) ; select main conferences
  7635.  EnufSec(%AREASEC%)
  7636.  If(%ARESP%)=(Yes) then SetEqual(/LASTMSG=1)
  7637.  If(%ARESP%)<>(Yes) then
  7638.    selarea(/:lastmsg/)
  7639.    NiceSay(&CR&&14&You are currently in the %AREANAME% Conference!&CR&)
  7640.   endif
  7641.  listfile(areas\farea/:lastmsg/)
  7642.  if (/:lastdown/)<(1) then setequal(/lastdown=1)
  7643.  if (/:lastdown/)>(%maxfarea%) then setequal(/lastdown=1)
  7644.  selfarea(/:lastdown/)
  7645.  if (%filsec%)>(/:sec/) then setequal(/lastdown=1)
  7646.  selfarea(/:lastdown/)
  7647.  AddComma(%CALLERS%)
  7648.  Log(->,Call #%ARESP%, %GRAPHICS%, %NDFROM%, Last: /:LAST/, Sec: /:SEC/)
  7649.  If (/:SUB/)=(Y) then Goto (subscriber)
  7650.  
  7651. *SECSHOW
  7652. ; if (/:timeson/)>(2) then loadsub(control\macros\survey.ctl)
  7653.  InpClose
  7654.  fDate(display\newsltr.asc)
  7655.  CmpDate(/:LAST/,%ARESP%)
  7656.  setnv(Ctext=)
  7657.  IfNotTrue( setnv(Ctext=The newsletter has been updated.))
  7658.  setnv(Qtext=Would you like to view our newsletter?)
  7659.  jump (YesNo2)
  7660.  if (%graphics%)=(WIP) then writeln(View Newsletter? : "%resp%")
  7661.  If (%RESP%) = (No) then Goto (mailchk)
  7662.  loadsub(control\macros\news.ctl)
  7663.  
  7664. *MAILCHK
  7665. setnv(fromopen=1)
  7666. Loadmem(control\secinfo.ctl)
  7667.  
  7668. *SUBSCRIBER
  7669.  DateOK(/:SUBDATE/)
  7670.  IfNotTrue (goto (secshow))
  7671.  CmpDate(%DATE%,/:SUBDATE/)
  7672.  IfNotTrue(goto (sok))
  7673.  Log(--,User's subscription expired.)
  7674.  Display (display\SEXP,/:SEC/)
  7675.  loadsub(control\subread.ctl)
  7676.  secpause(2)
  7677.  Goto (secshow)
  7678. *SOK
  7679.  if (%nv%wipmode%)=(1) then goto (wSok)
  7680.  Display(display\SUB,/:SEC/)
  7681.  Enter
  7682.  Goto (secshow)
  7683. *wSok
  7684.  display(display\sub,/:sec/)
  7685.  onekey
  7686. goto(secshow)
  7687.  
  7688.  
  7689. *ALREADYON
  7690.  Display(display\ALREADY)
  7691.  Log(<<,User already on another node!)
  7692.  QuitBBS
  7693.  
  7694. *CHKEOF2
  7695.  inc(h)
  7696.  Goto (chkeof)
  7697.  
  7698. *SYSOP
  7699. ; Jump (DefPrompt)
  7700.  Kill (cnodes.%NODE%,inodes.%NODE%,%pbtemp%tagged.%NODE%,%pbtemp%tagged2.%NODE%,%pbtemp%psys.%node%)
  7701.  SetActivity (SYSOP Logon)
  7702.  Setequal(/Graphics=ANSI)
  7703.  UserLogin(1,SYSTEM OPERATOR Logged On Locally)
  7704.  AddComma(%CALLERS%)
  7705.  Log (->,Call #%ARESP%, %GRAPHICS%, Last: /:LAST/)
  7706.  Goto (secshow)
  7707.  
  7708. *SYSSEC
  7709.  If (%SYSP%)=() then Goto (conclr)
  7710.  Say(&11&Sysop Password? &15&*)
  7711.  MenuEqual(a=%SYSP%)
  7712.  cGetPass(*)
  7713.  SetEqual(z=%RESP%)
  7714.  If (&z) = (&a) then goto (conclr)
  7715.  Log(!!,Incorrect Sysop Pass (%RESP%))
  7716.  Say(&12&Incorrect Attempt!)
  7717.  QuitBBS
  7718.  
  7719.  
  7720. *INITSETUP
  7721.  SetEqual(/GRAPHICS=ASCII)
  7722.  Defpause ($7$&0&[Send more text?]$0$&3& (&11&S&3&)top, (&11&N&3&)onstop or (&11&C&3&)ontinue?&12&: &7&)
  7723.  DefPif (s:stop,n:nonstop)
  7724.  if (%ON%)=(FROM DOOR) then loadmem(control\doorback.ctl)
  7725.  SetEqual (/sec=%NEWSEC%)
  7726.  SetEqual (/SCREENLEN=23)
  7727.  SetActivity (Logging in...)
  7728.  linefeed(1)
  7729.  Clogin (Kill (cnodes.%NODE%,inodes.%NODE%,%pbtemp%tagged.%NODE%,%pbtemp%tagged2.%NODE%,%pbtemp%psys.%node%))
  7730. ret
  7731.  
  7732. *yesno2
  7733. flushout
  7734. if (%nv%wipmode%)<>(1) then goto (nwYn)
  7735. writeln(Y/N Question: %nv%Qtext%)
  7736. setequal(c=13~%nv%Ctext%   %nv%Qtext%~Yes/No Question~2~)
  7737. jump (wipc)
  7738.    *gi2
  7739.    comlineinput(180,l)
  7740.    if (%aresp%)=(24) then
  7741.     log(<<,User did not press a key for a while. Timeout Disc.)
  7742.     display(display\timeout)
  7743.     quitbbs
  7744.     endif
  7745.    *tryr
  7746.    setequal(r=%resp%)
  7747.    ascii
  7748.    if (%aresp%)=(21) then goto (yesno2)
  7749.    if (%aresp%)=(6) then
  7750.      len(%var%r)
  7751.      if (%aresp%)=(1) then goto (gi2)
  7752.      get(&r,2,1000)
  7753.      setequal(/resp=%aresp%)
  7754.      goto (tryr)
  7755.    endif
  7756.    if (%resp%)=(2) then setequal(/resp=Yes)
  7757.    if (%resp%)=(3) then setequal(/resp=No)
  7758. ret
  7759. *nwyn
  7760. say(&15&%nv%Ctext%&CR&)
  7761. Say(&15&%nv%Qtext% *)
  7762.  
  7763. *yesno
  7764.  Say(&15&(&12&Y&15&/&12&N&15&)&14&*)
  7765.  Back(4)
  7766.  YesNoAsk(*)
  7767. ret
  7768.  
  7769.  
  7770. *GCHAR
  7771. COMPRINT(%NV%TEXT%)
  7772. SETEQUAL(A=0)
  7773. DO
  7774. COMKEY
  7775. ASCII
  7776. IF(%ARESP%)=(21) THEN GOTO(GCHAR)
  7777. INC(A)
  7778. IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET
  7779. IF(%ARESP%)=(&B) THEN RET
  7780. IF(&A)>(45) THEN RET
  7781. IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%)
  7782. DELAY18TH(2)
  7783. LOOP
  7784. *WIPC
  7785. LOCALKEY(1)
  7786. IFNOTTRUE(GOTO(NOLKEY))
  7787. SYSKEYCHECK
  7788. SETEQUAL(/RESP=)
  7789. SETEQUAL(/RESP=)
  7790. *NOLKEY
  7791. CCARRIER
  7792. IF(%ARESP%)=(0) THEN GOTO (NOC0)
  7793. CHECKSUM(%VAR%C)
  7794. SETEQUAL(B=6)
  7795. SETNV(TEXT=$%ARESP%%VAR%C%C%13%)
  7796. SETNV(PBACK=)
  7797. JUMP(GCHAR)
  7798. IF(%ARESP%)<>(6) THEN JUMP(GCHAR)
  7799. SETEQUAL(/IBUFF=%NV%PBACK%)
  7800. LEN(%NV%PBACK%)
  7801. SETEQUAL(/IBUFF0=%ARESP%)
  7802. RET
  7803. *NOC0
  7804. log(<<,Carrier lost.)
  7805. quitbbs
  7806.  
  7807. *GraphDetect
  7808.  ;setequal(/graphics=ANSI)
  7809.  setequal(/graphics=ASCII)
  7810.  if (%LOCAL%)=(TRUE) then
  7811.    SetEqual(/graphics=ANSI)
  7812.    ret
  7813.   endif
  7814.  flushout
  7815.  secpause(1)
  7816.  flushout
  7817.  secpause(1)
  7818.  comsend(!tn)
  7819. ; say( |)
  7820.  Say(     |)
  7821.  Say(Checking graphics protocol . . . *)
  7822.  setequal(a=)
  7823.  secpause(1)
  7824.  comkey
  7825.  notif(%ARESP%)=() then goto (tkys)
  7826.  secpause(1)
  7827.  comkey
  7828.  setequal(k=0)
  7829. *tkys
  7830.  if(%ARESP%)=(D) then goto (isWIP)
  7831.  if(%ARESP%)=(C) then goto (isWIP)
  7832.  if(%ARESP%)=(-) then goto(isWIP)
  7833.  if(%ARESP%)=(I) then goto (isrip)
  7834.  if(%ARESP%)=() then setequal(a=aps)
  7835. ; if(%ARESP%)=() then goto (isnone)
  7836.  comkey
  7837.  secpause(1)
  7838.  inc(k)
  7839.  if (%var%k)<(2) then goto (tkys)
  7840.  goto (isnone)
  7841.  
  7842. *isansi
  7843.  Say(&12&ANSI &15&Graphics Detected)
  7844.  setequal(/graphics=ANSI)
  7845.  ret
  7846. *isWIP
  7847.  flushout
  7848.  say(&12&Windows Interface Protocol Detected)
  7849.  setequal(/graphics=WIP)
  7850.  ret
  7851. *isrip
  7852.  flushout
  7853.  Say(&12&RIP&14&scrip &15&Graphics Detected)
  7854.  setequal(/graphics=RIP)
  7855.  ret
  7856. *isnone
  7857.  flushout
  7858.  if (%VAR%A)=(aps) then goto (isansi)
  7859.  Say(No Graphics Detected)
  7860.  *GraphPrompt
  7861.  Say(&CR&Use (A)NSI Graphics or ASCI(I) Graphics? *)
  7862.  ;Say(&7&Use &12&(&14&A&12&)&7&NSI Graphics or ASCI&12&(&14&I&12&)&7& Graphics? &14&*)
  7863.  MenuKeyP
  7864.  If(%RESP%)=(?) then
  7865.    SetNv(helpoption=140)
  7866.    Jump(OlHelp)
  7867.    Goto(GraphPrompt)
  7868.   Endif
  7869.  If(%RESP%)=(A) then SetEqual(/graphics=ANSI)
  7870.  If(%RESP%)=(R) then SetEqual(/graphics=RIP)
  7871.  If(%RESP%)=(W) then SetEqual(/graphics=WIP)
  7872.  Notif(%RESP%)=(A) then NotIf(%RESP%)=(R) then NotiF(%RESP%)=(W) then Setequal(/graphics=ASCII)
  7873.  ret
  7874.  
  7875. *OlHelp
  7876.  SetNv(atprompt=Yes)
  7877.  LoadSub(olhelp\olhelp.ctl,goto(implementoption))
  7878.  Ret
  7879.  
  7880. *Anywhere
  7881. Len(%RESP%)
  7882. If(%ARESP%)<(2) then Goto(Bsel)
  7883. LoadSub(control\macros\anywhere.ctl)
  7884. Goto(disp)
  7885.  
  7886. *retryname
  7887. if (%nv%wipmode%)=(1) then loadsub(control\wipwelc.ctl,goto(badname))
  7888. goto(cont)
  7889.  
  7890. *NOCARRIER
  7891. seek (pbdoor.%node%)
  7892. ifnottrue(quitbbs)
  7893. inpline(pbdoor.%node%,6)
  7894. if (%aresp%)<>(0) then doorback(%ARESP%,Back from Door program)
  7895. kill(pbdoor.%node%)
  7896. quitbbs
  7897.  
  7898. *WipW
  7899. loadsub(control\wipwelc.ctl)
  7900. goto(cont)
  7901. DOORBACKCTLúCARRIERL(Y)
  7902. inpline(pbdoor.%node%,2)
  7903. setequal(/name=%aresp%)
  7904. inpline(pbdoor.%Node%,6)
  7905.   notif (%aresp%)=(0) then DoorBack(%ARESP%,Back from Door program)  ;get their name from PBDOOR.node
  7906.  
  7907. setequal(a=/:lastmsg/)
  7908. if (%var%a)=(0) then setequal(a=1)
  7909. selarea(%var%a)
  7910. mcavail(/:defavail/)
  7911. ListFile (areas\farea/:LASTMSG/)
  7912. selfarea(/:lastdown/)
  7913. inpline (pbdoor.%NODE%,9)
  7914. SetEqual(/GRAPHICS=%ARESP%)
  7915. if (%graphics%)=(WIP) then setnv(wipmode=1)
  7916. inpline (pbdoor.%NODE%,13)
  7917. setequal(a=%ARESP%)
  7918. Kill (pbdoor.%NODE%)
  7919. restcarrier
  7920. CARRIERL(N)
  7921. find (%Var%a,DOOR)
  7922. iftrue (Display (display\back))
  7923. inpline(%pbtemp%tagtmp.%node%,1)
  7924. setequal(/nvTotalTime=%aresp%)
  7925. inpline(%pbtemp%tagtmp.%node%,2)
  7926. setequal(/nvTotalFree=%aresp%)
  7927. LoadMem (%Var%A)
  7928.  
  7929. *NOCARRIER
  7930. seek (pbdoor.%node%)
  7931. ifnottrue(quitbbs)
  7932. inpline(pbdoor.%node%,6)
  7933. notif (%aresp%)=(0) then doorback(%ARESP%,Back from Door program)
  7934. kill(pbdoor.%node%)
  7935. quitbbs
  7936. WIPRCTL╜setequal(\company=)
  7937. SetEqual(\LASTT=%TIME%) ; set last time on to current time
  7938. setequal(>LAST=%DATE%)
  7939. setequal(\street1=)
  7940. setequal(\street=)
  7941. setequal(\from=)
  7942. setequal(\pass=)
  7943. setequal(\phone=)
  7944. setequal(\work=)
  7945. setequal(\birth=)
  7946. setequal(\lastchk=%date%)
  7947. setequal(\defavail=Y)
  7948. setequal(\wait=Y)
  7949. setequal(\comp=)
  7950. setequal(\protocol=N)
  7951. setequal(\left=%newtime%)
  7952. setequal(\sec=%newsec%)
  7953. setequal(\timeson=0)
  7954. setequal(\uploads=0)
  7955. setequal(\downloads=0)
  7956. setequal(\first=%date%)
  7957. setequal(\sub=N)
  7958. setequal(\subdate=)
  7959. setequal(\lastdown=1)
  7960. setequal(\lastup=1)
  7961. setequal(\lastmsg=1)
  7962. setequal(\kdown=0)
  7963. setequal(\kup=0)
  7964. setequal(\expert=N)
  7965. setequal(\screenlen=24)
  7966. setequal(\graphics=WIP)
  7967. setequal(\dropped=0)
  7968. setequal(\chatreq=0)
  7969. setequal(\cutoff=0)
  7970. setequal(\zip=)
  7971. setequal(\country=)
  7972. setequal(\title=)
  7973. setequal(\alias=)
  7974. setequal(\mhsname=)
  7975. setequal(\bytestoday=0)
  7976. setequal(\memo=)
  7977. setequal(\memo2=)
  7978. setequal(\memo3=)
  7979. setequal(\memo4=)
  7980. setequal(\memo5=)
  7981. setequal(\memo6=)
  7982. setequal(\int1=0)
  7983. setequal(\int2=0)
  7984. setequal(\int3=0)
  7985. setequal(\int4=0)
  7986. setequal(\int5=0)
  7987. setequal(\int6=0)
  7988. setequal(\chr1=0)
  7989. setequal(\chr2=0)
  7990. setequal(\chr3=0)
  7991. setequal(\doorse=0)
  7992. setequal(\msent=0)
  7993. setequal(\expto=0)
  7994. setequal(\expsec=0)
  7995. setequal(\subbal=0)
  7996. setequal(\tl=0)
  7997. setequal(\fratio=0)
  7998. setequal(\dailydl=0)
  7999. setequal(\dailyul=0)
  8000. setequal(\nbal=0)
  8001. setequal(\lo=N)
  8002. setequal(\psys=N)
  8003. setequal(\itime=N)
  8004. setequal(\ansmusic=N)
  8005. return
  8006. WIPSOUNDCTL9
  8007. *isithere0
  8008.    fdate(WIP\RESOURCE\%nv%file%)
  8009. setequal(d=%aresp%)
  8010. seekrep(d,45,47)
  8011. get(&d,1,1)
  8012. if (%aresp%)=(0) then
  8013. get(&d,2,1000)
  8014. setequal(d=%aresp%)
  8015. endif
  8016.    ftime(WIP\RESOURCE\%nv%file%)
  8017.    setnv(time=%aresp%)
  8018.    setequal(c=10~%nv%file%~%nv%time%~%var%d~)
  8019.    jump (wipc)
  8020.    comlineinput(60,l)
  8021.    if (%aresp%)=(24) then goto (isithere0)
  8022.    if (%resp%)=(1) then goto (execr)
  8023.    setequal(c=11~Z~)
  8024.    jump (wipc)
  8025.    exec(dsz.com port %port% speed %lbaud% sz WIP\RESOURCE\%nv%file%)
  8026.    secpause(1)
  8027.    flushout
  8028. *execr
  8029.    setequal(c=12~%nv%file%~)
  8030.    jump (wipc)
  8031. return
  8032.  
  8033. *GCHAR
  8034. COMPRINT(%NV%TEXT%)
  8035. SETEQUAL(A=0)
  8036. DO
  8037. COMKEY
  8038. ASCII
  8039. IF(%ARESP%)=(21) THEN GOTO(GCHAR)
  8040. INC(A)
  8041. IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET
  8042. IF(%ARESP%)=(&B) THEN RET
  8043. IF(&A)>(200) THEN RET
  8044. IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%)
  8045. DELAY18TH(2)
  8046. LOOP
  8047. *WIPC
  8048. LOCALKEY(1)
  8049. IFNOTTRUE(GOTO(NOLKEY))
  8050. SYSKEYCHECK
  8051. SETEQUAL(/RESP=)
  8052. SETEQUAL(/RESP=)
  8053. *NOLKEY
  8054. CCARRIER
  8055. IF(%ARESP%)=(0) THEN GOTO (NOC0)
  8056. CHECKSUM(%VAR%C)
  8057. SETEQUAL(B=6)
  8058. SETNV(TEXT=$%ARESP%%VAR%C%C%13%)
  8059. SETNV(PBACK=)
  8060. JUMP(GCHAR)
  8061. if(%ARESP%)<>(6) THEN FLUSHOUT
  8062. IF(%ARESP%)<>(6) THEN JUMP(GCHAR)
  8063. setequal(c=%aresp%)
  8064. SETEQUAL(/IBUFF=%NV%PBACK%)
  8065. LEN(%NV%PBACK%)
  8066. SETEQUAL(/IBUFF0=%ARESP%)
  8067. SETEQUAL(/ARESP=%VAR%C)
  8068. RET
  8069. *NOC0
  8070. log(<<,Carrier lost.)
  8071. quitbbs
  8072. NEWUWIPCTLKsetnv(first=)
  8073.  
  8074. setactivity(New-user Logon...)
  8075. log(==,New User (%var%D) Registering...)
  8076.  
  8077. loadsub(control\wipr.ctl)
  8078. setequal(/screenlen=24)
  8079.  
  8080. *DispWipFile
  8081. setnv(wiprestreq=)
  8082. setnv(noInfo=1)
  8083. loadsub(control\ewipscr.ctl,setnv(wipf=newuser))
  8084.  
  8085. if (%nv%first%)=(1) then goto (passbd)
  8086. setequal(c=07~dob~MM-DD-YY~)
  8087. jump (wipc)
  8088. setnv(first=1)
  8089.  
  8090. *passbd
  8091. setequal(c=0A~)
  8092. jump (wipc)
  8093.  
  8094. *GetInfo
  8095.   Flushout
  8096.   setnv(tries=0)
  8097.   writeln(User is filing out the new user registration form . . .)
  8098.   say(Type 'okbtn' when completed ...)
  8099.   *geti
  8100.   setequal(y=10)
  8101.   jump (wipask)
  8102.   if (%nv%wiprestreq%)=(1) then goto (dispwipfile)
  8103.   if (%aresp%)<>(24) then goto (GotaResp)
  8104.   setequal(c=0A~)
  8105.   jump (wipc)
  8106.   setequal(y=20)
  8107.   jump (wipask)
  8108.   if (%nv%wiprestreq%)=(1) then goto (dispwipfile)
  8109.   if (%aresp%)<>(24) then goto (GotAResp)
  8110.   setequal(c=0A~)
  8111.   jump (wipc)
  8112.   setequal(y=98)
  8113.   jump (wipask)
  8114.   if (%nv%wiprestreq%)=(1) then goto (dispwipfile)
  8115.   if (%aresp%)=(24) then
  8116.     if (%nv%tries%)=(1) then loadmem(control\timeout.ctl)
  8117.     loadsub(control\wipsound.ctl,setnv(file=wakeup!.wav))
  8118.     writeln(User not responding.  Timeout warning sent to remote ...)
  8119.     setequal(c=13~If you do not enter some information soon, we will disconnect you.~Timeout Warning~0~)
  8120.     Jump (wipc)
  8121.     setnv(tries=1)
  8122.   endif
  8123.   *GotAResp
  8124.   setequal(o=%resp%)
  8125.   *ao
  8126.   ascii
  8127.   setequal(y=%aresp%)
  8128.   if (%var%y)=(6) then get (&o,2,1000)
  8129.   if (%var%y)<>(6) then get (&o,1,1000)
  8130.   setequal(o=%aresp%)
  8131.   len(%aresp%)
  8132.   if (%aresp%)=(1) then if (%var%y)=(6) then setequal(o=)
  8133.   setequal(/resp=%var%o)
  8134.   if (%var%y)=(6) then if (%var%o)<>() then goto (ao)
  8135.   setequal(b=%resp%)
  8136.   writeln(Response from remote: "%var%b")
  8137.   ccarrier
  8138.   if (%aresp%)=(0) then quitbbs
  8139.   find(&b,;)
  8140.   if (%aresp%)<(1) then goto (noCmnd)
  8141.   addvar(%aresp%+-1=e)
  8142.   addvar(%aresp%+1=f)
  8143.   get(&b,1,%var%e)
  8144.   SetNv(WipC=%aresp%)
  8145.   get(&b,%var%f,1000)
  8146.   SetNv(Ctext=%aresp%)
  8147.   setnv(tries=0)
  8148.   if (%nv%wipc%)=(company) then setequal(\company=%nv%Ctext%)
  8149.   if (%nv%wipc%)=(title) then setequal(\title=%nv%Ctext%)
  8150.   if (%nv%wipc%)=(street1) then setequal(\street1=%nv%Ctext%)
  8151.   if (%nv%wipc%)=(street2) then setequal(\street=%nv%Ctext%)
  8152.   if (%nv%wipc%)=(cityst) then setequal(\from=%nv%Ctext%)
  8153.   if (%nv%wipc%)=(protocol) then setequal(\protocol=%nv%Ctext%)
  8154.   if (%nv%wipc%)=(country) then setequal(\country=%nv%Ctext%)
  8155.   if (%nv%wipc%)=(zipcode) then setequal(\zip=%nv%Ctext%)
  8156.   if (%nv%wipc%)=(alias) then setequal(\alias=%nv%Ctext%)
  8157.   if (%nv%wipc%)=(password) then setequal(\pass=%nv%Ctext%)
  8158.   if (%nv%wipc%)=(homephone) then setequal(\phone=%nv%Ctext%)
  8159.   if (%nv%wipc%)=(workphone) then setequal(\work=%nv%Ctext%)
  8160.   if (%nv%wipc%)=(dob) then setequal(\birth=%nv%Ctext%)
  8161.   if (%nv%wipc%)=(computer) then setequal(\comp=%nv%Ctext%)
  8162.  
  8163.   upcase(z)
  8164.   *NoCmnd
  8165.   if (%resp%)=(okbtn) then goto (donef)
  8166.   goto (geti)
  8167.  
  8168. *badDob
  8169. writeln(Incorrect D.O.B. format)
  8170. setequal(c=13~The date of birth you entered is not in the correct format.  Please re-enter.~Invalid D.O.B.~1~)
  8171. jump (okbox)
  8172. goto(doAgain)
  8173. *NotDone
  8174. writeln(Form not complete...)
  8175. setequal(c=13~The form has not been filled out completely.  Please make sure all pertinent information has been entered.~Form Incomplete~1~)
  8176. Jump (okbox)
  8177. goto(DoAgain)
  8178. *PassTooLong
  8179. writeln(Password too long.  Please select a different one.)
  8180. setequal(c=13~The password you specified is too long.  Please select a different one.~Bad Password~1~)
  8181. jump (okbox)
  8182. goto (DoAgain)
  8183. *diffpass
  8184. writeln(Please choose a more unique password.)
  8185. setequal(c=13~Please choose a more unique password.~Password Too Simple~1~)
  8186. jump (okbox)
  8187. goto(doagain)
  8188. *badinfo
  8189. writeln(Bad information entered.  Disconnecting.)
  8190. log(<<,New User entered bad info)
  8191. setequal(c=13~Bad information entered.  Disconnecting.~Bad Data Entry~0~)
  8192. jump (wipc)
  8193. setequal(/resp=)
  8194. loadmem(control\macros\newbad.ctl)
  8195. QuitBBS
  8196.  
  8197. *donef
  8198. dateok(\:birth\)
  8199. ifnottrue(goto(badDob))
  8200. if (\:birth\)=() then goto (NotDone)
  8201. if (\:phone\)=() then goto (NotDone)
  8202. setequal(\DEFAVAIL=Y)
  8203. len(\:pass\)
  8204. if (%aresp%)>(20) then goto (PassTooLong)
  8205. if (\:pass\)=() then goto (NotDone)
  8206. if (\:from\)=() then goto (NotDone)
  8207. if (\:from\)=(\:work\) then goto (badinfo)
  8208. if (\:from\)=(\:phone\) then goto (badinfo)
  8209. if (\:from\)=(\:street\) then goto (badInfo)
  8210. if (\:from\)=(\:street1\) then goto (badinfo)
  8211. if (\:from\)=(/:name/) then goto (badinfo)
  8212. if (\:pass\)=(\:from\) then goto (diffpass)
  8213. if (\:pass\)=(\:name\) then goto (diffpass)
  8214. if (\:pass\)=(\:street\) then goto (diffpass)
  8215. setequal(c=/:name/)
  8216. find(&c,\:pass\)
  8217. iftrue(goto(diffpass))
  8218.  
  8219. writeln(Creating records for user in databases...)
  8220. setequal(c=07~nosel1~Now creating records for you in our databases.  Please wait...~)
  8221. jump (wipc)
  8222.  
  8223. ;setequal(c=13~Now creating records for you in our databases.  This may take a while.  Please wait.~Creating Records~0~)
  8224. ;jump (wipc)
  8225.  
  8226. seekfile(phones.dat,\:phone\)
  8227. IfTrue(Jump(Dphone))
  8228. setequal(d=/:name/)
  8229. setequal(\name=%var%d)
  8230.  
  8231. *CreateIt
  8232. findsp
  8233. setequal(a=%aresp%)
  8234. setequal(g=\:alias\)
  8235. upcase(g)
  8236. saveuser(%var%a)
  8237. setequal(e=%var%D│%var%g│\:PASS\│\:FROM\│%var%a│0%C%13%%C%10%)
  8238. setlen(e=116)
  8239. appendtoN(userfile.ndx,%var%e%C%10%)
  8240.  
  8241.  UserLogin(%var%a,User %var%a: %var%d Logged On (%BAUD%))
  8242.  If (%ARESP%)=(ALREADY ON) then QuitBBS
  8243.  
  8244. appendto(phones.dat,\:phone\)
  8245.  
  8246. ;loadsub(control\Exitwip.ctl)
  8247. loadmem(control\open.ctl,goto (conclr))
  8248.  
  8249.  
  8250. *GCHAR
  8251. COMPRINT(%NV%TEXT%)
  8252. SETEQUAL(A=0)
  8253. DO
  8254. COMKEY
  8255. ASCII
  8256. IF(%ARESP%)=(21) THEN GOTO(GCHAR)
  8257. INC(A)
  8258. IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET
  8259. IF(%ARESP%)=(&B) THEN RET
  8260. IF(&A)>(45) THEN RET
  8261. IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%)
  8262. DELAY18TH(2)
  8263. LOOP
  8264. *WIPC
  8265. LOCALKEY(1)
  8266. IFNOTTRUE(GOTO(NOLKEY))
  8267. SYSKEYCHECK
  8268. SETEQUAL(/RESP=)
  8269. SETEQUAL(/RESP=)
  8270. *NOLKEY
  8271. CCARRIER
  8272. IF(%ARESP%)=(0) THEN GOTO (NOC0)
  8273. CHECKSUM(%VAR%C)
  8274. SETEQUAL(B=6)
  8275. SETNV(TEXT=$%ARESP%%VAR%C%C%13%)
  8276. SETNV(PBACK=)
  8277. JUMP(GCHAR)
  8278. IF(%ARESP%)<>(6) THEN JUMP(GCHAR)
  8279. SETEQUAL(/IBUFF=%NV%PBACK%)
  8280. LEN(%NV%PBACK%)
  8281. SETEQUAL(/IBUFF0=%ARESP%)
  8282. RET
  8283. *NOC0
  8284. log(<<,Carrier lost.)
  8285. quitbbs
  8286.  
  8287. *DoAgain
  8288.   setequal(c=0A~)
  8289.   jump (wipc)
  8290. goto(getInfo)
  8291.  
  8292. *Dphone
  8293. writeln(Some of the information entered duplicates data in another user record.)
  8294. appendto(badnames.bbs,/:name/)
  8295. appendto(badnames.bbs,\:alias\)
  8296. log(!!,User entered duplicate info (\:phone\))
  8297. setequal(c=13~Information you entered duplicates that of another user. Your account will be reviewed by the SysOp.~Duplicate Info~0~)
  8298. jump (wipc)
  8299. setequal(/resp=)
  8300. loadmem(control\macros\newbad.ctl)
  8301.  
  8302. *okbox
  8303. Jump (wipc)
  8304. *try4
  8305. comlineinput(30,l)
  8306. if (%resp%)=() then goto (try4)
  8307. ret
  8308.  
  8309. *wipAsk
  8310. loadsub(control\wipask.ctl)
  8311. ret
  8312. NEWUSERCTLn ;NEWUSER2 FILE
  8313.  
  8314. setactivity(New-user Logon...)
  8315. setequal(d=%name%)
  8316. log(==,New User (%name%) Registering...)
  8317. *ResetAllVars
  8318. LoadSub(control\macros\reset.ctl)
  8319. LoadSub(control\macros\reseta.ctl)
  8320.  
  8321. setequal(t=0)
  8322. SetNv(updating=No)  ; is user just updating one field?
  8323. SetNv(newuser=Yes)
  8324.  
  8325. *ShowMenu
  8326.  ClearScr
  8327.  Display(display\newuser)  ; show newuser registration header display
  8328.  If(%HANDLE%)<>(Yes) then Goto(Street)
  8329.  SetEqual(\ALIAS=%NAME%)
  8330.  SetEqual(/ALIAS=%NAME%)
  8331.  *GetTheName
  8332.  Say(&CR&&15& Enter your real first and last name&12&: &14&*)
  8333.  MenuAsk(%CRON%%NOCR%%MIN%1%*)
  8334.  If(%RESP%)=(<CR>) then Goto(ShowMenu)
  8335.  SetEqual (a=%RESP%)
  8336.  Get(&a,1,1)
  8337. ; If(%ARESP%)=(?) then
  8338. ;   SetNv(helpoption=110)
  8339. ;   Jump(OlHelp) ; if need help
  8340. ;   Goto(AskForName)
  8341. ;  endif
  8342.  SetEqual (b=)
  8343.  Find (%VAR%A, )
  8344.  If (%ARESP%)<>(0) then
  8345.    Say()
  8346.    Goto (CHECK)
  8347.   endif
  8348.  MenuAsk (%MIN%1%&CR&&15&                           Last name&12&: &14&*)
  8349.  SetEqual (b=%RESP%)
  8350.  
  8351. *CHECK
  8352.  Say()
  8353.  setequal(d=%var%a)
  8354.  len(%var%b)
  8355.  notif (%aresp%)=(0) then setequal(d=%var%a %var%b)
  8356.  Namequal (/name=%VAR%D)
  8357.  nameok
  8358.  if (%ARESP%)<>(Yes) then goto (CONT)
  8359.  SetEqual (d=/:NAME/)
  8360.  setequal(\name=/:name/)
  8361.  SeekType(n)
  8362.  SeekUser(%VAR%D)
  8363.  If(%ARESP%)<>(No) then Goto(NameExists)
  8364.  Goto(Alias)
  8365.  
  8366. *ShowInfo
  8367.  ClearScr
  8368.  NiceEqual(d=/:NAME/)
  8369.  NameEqual(/NAME=%VAR%D)
  8370.  Display(display\newuser)
  8371.  SetEqual(i=1)
  8372.  If(%HANDLE%)=(Yes) then
  8373.     Say(&12&%VAR%I.&15&          Alias: &14&\:ALIAS\)
  8374.     Inc(i)
  8375.    endif
  8376.  Say(&12&%VAR%I.&15&   Street (1/2): &14&\:STREET1\)
  8377.  Inc(i)
  8378.  Say(&12&%VAR%I.&15&   Street (2/2): &14&\:STREET\)
  8379.  Inc(i)
  8380.  Say(&12&%VAR%I.&15&       City, ST: &14&\:FROM\)
  8381.  Inc(i)
  8382.  Say(&12&%VAR%I.&15&       ZIP Code: &14&\:ZIP\)
  8383.  Inc(i)
  8384.  Say(&12&%VAR%I.&15&        Country: &14&\:COUNTRY\)
  8385.  Inc(i)
  8386.  Jump(DotsInstead)
  8387.  Say(&12&%VAR%I.&15&       Password: &14&%NV%PASSDOTS%)
  8388.  SetNv(passdots=)
  8389.  Inc(i)
  8390.  Say(&12&%VAR%I.&15&     Home Phone: &14&\:PHONE\)
  8391.  Inc(i)
  8392.  Say(&12&%VAR%I.&15&     Work Phone: &14&\:WORK\)
  8393.  Inc(i)
  8394.  Say(&12&%VAR%I.&15&*)
  8395.  If(&i)=(9) then Say( *)
  8396.  Say(       Company: &14&\:COMPANY\)
  8397.  Inc(i)
  8398.  Say(&12&%VAR%I.&15&     Birthdate: &14&\:BIRTH\)
  8399.  Inc(i)
  8400.  Say(&12&%VAR%I.&15&      Protocol: &14&\:PROTOCOL\)
  8401.  Inc(i)
  8402.  Say(&12&%VAR%I.&15&      Computer: &14&\:COMP\)
  8403.  Inc(i)
  8404.  Say(&12&%VAR%I.&15& Screen Length: &14&\:SCREENLEN\)
  8405.  SetNv(updating=Yes)
  8406.  Say(&CR&&15&Enter Selection to Change (ENTER=continue)&12&: &14&*)
  8407.  MenuAsk(%CRON%%LEN%2%*)
  8408.  If(%RESP%)=(<CR>) then Goto(CreateIt)
  8409.  If(%HANDLE%)=(Yes) then BigIf(1:Alias,2:Street,3:Street2,4:City,5:ZIP,6:Country,7:Pass,8:Phone,9:Work,10:CompanyName,11:Birth,12:Protocol,13:Computer,14:ScreenLength)
  8410.  If(%HANDLE%)<>(Yes) then BigIf(1:Street,2:Street2,3:City,4:ZIP,5:Country,6:Pass,7:Phone,8:Work,9:CompanyName,10:Birth,11:Protocol,12:Computer,13:ScreenLength)
  8411.  *EvenMore
  8412.  If(^:5^)=(FirstTime) then Goto(MoreImportantFix)
  8413.  Goto(FixMenu)
  8414.  Return
  8415.  
  8416.         *Alias
  8417. If(%HANDLE%)<>(Yes) then Goto(Street)
  8418. LoadSub(control\macros\alias.ctl)
  8419. SetEqual(\ALIAS=/:ALIAS/)
  8420. If(%NV%UPDATING%)<>(Yes) then Goto(Street)
  8421. Goto(ShowInfo)
  8422.  
  8423.         *street
  8424. LoadSub(control\macros\street.ctl)
  8425. SetEqual(\STREET1=/:STREET1/)
  8426. SetEqual(\STREET=/:STREET/)
  8427. If(%NV%UPDATING%)<>(Yes) then Goto(City)
  8428. Goto(ShowInfo)
  8429.  
  8430. *Street2
  8431. Say()
  8432. LoadSub(control\macros\street.ctl,goto(street2))
  8433. SetEqual(\STREET=/:STREET/)
  8434. if (%nv%updating%)<>(Yes) then goto (city)
  8435. Goto(ShowInfo)
  8436.  
  8437. if (/:from/)=(\:street\) then goto(Fake)
  8438. ;goto(Evenmore)
  8439.  
  8440.         *city
  8441. Say()
  8442. LoadSub(control\macros\city.ctl)
  8443. SetEqual(\FROM=/:FROM/)
  8444.  
  8445. if (/:from/)=(\:street\) then goto(Fake)
  8446. update
  8447. If(%NV%UPDATING%)<>(Yes) then Goto(ZIP)
  8448. Goto(ShowInfo)
  8449.  
  8450.         *ZIP
  8451. Say(&CR&&15&Enter your ZIP code&12&: &14&*)
  8452. Say(#####-####*)
  8453. Back(10)
  8454. Picture(#####*)
  8455. Say(-*)
  8456. SetNv(buff=%RESP%)
  8457. MenuAsk(%CRON%%LEN%4%*)
  8458. If(%RESP%)=(<CR>) then
  8459.   SetEqual(/RESP=%NV%BUFF%)
  8460.   SetNv(buff=)
  8461.   Goto(DoZip)
  8462.  endif
  8463. Number(%RESP%)
  8464. IfTrue(SetEqual(/RESP=%NV%BUFF%-%RESP%))
  8465. IfNotTrue(SetEqual(/RESP=%NV%BUFF%))
  8466. *DoZip
  8467. SetEqual(\ZIP=%RESP%)
  8468. If(%NV%UPDATING%)<>(Yes) then Goto(Country)
  8469. Goto(ShowInfo)
  8470.  
  8471.         *Country
  8472. SetEqual(a=USA)
  8473. SetLen(a=30)
  8474. Say(&CR&&15&Please enter your country&12&: (*)
  8475. Spaces(30)
  8476. Say()&14&*)
  8477. Back(31)
  8478. SetFill(%VAR%A)
  8479. MenuAsk(%CRON%%LEN%30%*)
  8480. SetEqual(\COUNTRY=%RESP%)
  8481. If(%NV%UPDATING%)<>(Yes) then Goto(Pass)
  8482. Goto(ShowInfo)
  8483.  
  8484. ;Enter
  8485. ;Goto(EvenMore)
  8486.  
  8487.         *PASS
  8488. Say()
  8489. LoadSub(control\macros\pass.ctl)
  8490. SetEqual(\PASS=/:PASS/)
  8491. If(%NV%UPDATING%)<>(Yes) then Goto(Phone)
  8492. Goto(ShowInfo)
  8493.  
  8494. *phone
  8495. Say()
  8496. LoadSub(control\macros\hphone.ctl)
  8497. SetEqual(\PHONE=/:PHONE/)
  8498.  
  8499. *BadPhoneSeek
  8500. seekfile(phones.dat,/:phone/)
  8501. IfTrue(Jump(Dphone))
  8502.  
  8503. If(%NV%UPDATING%)<>(Yes) then Goto(Work)
  8504. Goto(ShowInfo)
  8505.  
  8506. *work
  8507. Say()
  8508. Say(&15&    Do you have a work phone number? (&12&Y&15&/&12&N&15&)&14&*)
  8509. Back(4)
  8510. YesNoAsk(*)
  8511. If(%RESP%)<>(Yes) then Goto(Birth)
  8512.  
  8513. *Work2
  8514. LoadSub(control\macros\work.ctl)
  8515. SetEqual(\WORK=/:WORK/)
  8516. SetNv(intl=)
  8517. If(%NV%UPDATING%)<>(Yes) then Goto(CompanyName)
  8518. Goto(ShowInfo)
  8519.  
  8520. *companyname
  8521. Say()
  8522. LoadSub(control\macros\coname.ctl)
  8523. SetEqual(\COMPANY=/:COMPANY/)
  8524. If(%NV%UPDATING%)<>(Yes) then Goto(Birth)
  8525. Goto(ShowInfo)
  8526.  
  8527. *Birth
  8528. Say(&CR&&15&        Please enter your birthdate&12&: &14&*)
  8529. Picture(##-##-##)
  8530. update
  8531. repeating(%resp%)
  8532. iftrue(goto (fake))
  8533. dateok(%resp%)
  8534. ifnottrue(goto (fake))
  8535. setequal(\BIRTH=%RESP%)
  8536. If(%NV%UPDATING%)<>(Yes) then Goto(Protocol)
  8537. Goto(ShowInfo)
  8538.  
  8539. *Protocol
  8540. LoadSub(control\macros\defprot.ctl)
  8541. SetEqual(\PROTOCOL=/:PROTOCOL/)
  8542. If(%NV%UPDATING%)<>(Yes) then Goto(Computer)
  8543. Goto(ShowInfo)
  8544.  
  8545. *Computer
  8546. Say(&CR&&15&Enter the type of computer you are using&12&: &14&*)
  8547. Ask(%MIN%1%%LEN%72%*)
  8548. NiceEqual(>COMP=%RESP%)
  8549. NiceEqual(/COMP=%RESP%)
  8550. setequal(\WAIT=N)
  8551. If(%NV%UPDATING%)<>(Yes) then Goto(ScreenLength)
  8552. Goto(ShowInfo)
  8553.  
  8554. *ScreenLength
  8555. Say()
  8556. LoadSub(control\macros\scrlen.ctl)
  8557. SetEqual(\SCREENLEN=/:SCREENLEN/)
  8558. ;If(%NV%UPDATING%)<>(Yes) then Goto(BadPhoneSeek)
  8559. Goto(ShowInfo)
  8560.  
  8561. Goto(ShowInfo)
  8562. Say(ABOUT TO CREATE RECORDS)
  8563. Enter
  8564.  
  8565. *CreateIt
  8566. AnsiGoto(1,20)
  8567. setequal(\defavail=Y)
  8568. say(&14&Please wait while your records are created.*)
  8569. findsp
  8570. Say(.*)
  8571. setequal(a=%aresp%)
  8572. saveuser(%var%a)
  8573. Say(.*)
  8574. setequal(g=\:alias\)
  8575. upcase(g)
  8576. upcase(d)
  8577. setequal(e=%var%D│%var%g│\:PASS\│\:FROM\│%var%a│0%C%13%%C%10%)
  8578. setlen(e=116)
  8579. appendtoN(userfile.ndx,%var%e%C%10%)
  8580. NiceEqual(d=%VAR%D)
  8581. If(%HANDLE%)=(Yes) then Log(==,  Name: /:NAME/    Alias: /:ALIAS/)
  8582. If(%HANDLE%)<>(Yes) then Log(==,  Name: /:NAME/)
  8583. Log(==,  Street (1/2): /:STREET1/)
  8584. Log(==,  Street (2/2): /:STREET/)
  8585. Log(==,  Home Phone: \:PHONE\)
  8586. Log(==,  Work Phone: \:WORK\)
  8587. Log(==,  From: /:FROM/)
  8588. Log(==,  ZIP Code: \:ZIP\)
  8589. Log(==,  Company: /:COMPANY/)
  8590. Log(==,  Birthdate: \:BIRTH\)
  8591. Log(==,  Password: /:PASS/)
  8592. appendto(phones.dat,\:phone\)
  8593.  
  8594. SetNv(newuser=)
  8595.  UserLogin(%var%a,User %var%a: %var%d Logged On (%BAUD%))
  8596.  If (%ARESP%)=(ALREADY ON) then QuitBBS
  8597.  
  8598.  
  8599. say( |)
  8600. eline(55)
  8601.  
  8602. seekuser(%var%D)
  8603. ClearScr
  8604. Display(display\help\bbshlp) ; show Help on Using BBS screen
  8605. loadmem(control\open.ctl,goto (conclr))
  8606.  
  8607.         *BADPASS
  8608. Jump(BotLine)
  8609. AnsiGoto(13,13)
  8610. Beep(1)
  8611. say(&7&>&12&The passwords did not match.  Please try again...&7&<)
  8612. goto (morepass)
  8613.  
  8614. *fake
  8615. ClearScr
  8616. Beep(3)
  8617. Say(&12&FALSE INFORMATION ENTERED!!!! YOU WILL NOW BE LOCKED OUT!!!)
  8618. Say((It is possible you entered the same thing for your street address as you put) 
  8619. Say(for your city/state.))
  8620. Beep(3)
  8621. Say(&CR&&11&Enter One Line Reason Why You Entered False Information:)
  8622. Say(&3&[&7&░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░&3&]&12&*)
  8623. Back(53)       
  8624. Ask (*%MIN%1%%LEN%52%)
  8625. LoadMem(control\macros\newbad.ctl) ; new user logged on with false info
  8626.  
  8627. *inv
  8628. inc(t)
  8629. if (&t)=(2) then goto (fake)
  8630. goto(city)
  8631.  
  8632. *bp
  8633. Jump(BotLine)
  8634. AnsiGoto(13,13)
  8635. Beep(1)
  8636. say (&7&>&12&Please enter a more unique, hard to guess password.&7&<)
  8637. goto (Morepass)
  8638.  
  8639. *Dphone
  8640. LoadMem(control\macros\badphone.ctl)
  8641.  
  8642. *NameExists
  8643. Say(&CR&&12&There is already a user with that name in our user file. Please try again,)
  8644. Say(using your middle initial.)
  8645. Log(--,User attempted to logon new with real name %VAR%D)
  8646. Goto(GetTheName)
  8647.  
  8648. *DotsInstead
  8649. LoadSub(control\macros\passdots.ctl)
  8650. Ret
  8651. SYSOPMNUf *disp
  8652. SetActivity (Sysop Menu)
  8653. setnv(wiprestreq=)
  8654. delimit( ,;)
  8655. ;---PowerStak Block 1
  8656. setnv(didwip=)
  8657. len(%nv%queue%)
  8658. notif (%aresp%) = (0) then
  8659. setequal(/resp=%nv%queue%)
  8660. goto(stk) ;If something in the stack then...
  8661. endif
  8662. ;---PowerStak Block 1 End---
  8663.  
  8664. if (/:EXPERT/)=(Y) then goto (exp0)
  8665. *sdisp
  8666. if (%graphics%)<>(WIP) then setnv(wipmode=)
  8667. if (%nv%wipmode%)=(1) then if (%nv%norefresh%)=(1) then setnv(jExec=1)
  8668. setnv(file=sysop)
  8669. seek(display\sysop/:sec/.ans)
  8670. iftrue(setnv(file=sysop/:sec/))
  8671. setnv(NoInfo=1)
  8672. setnv(asciiequiv=1)
  8673. loadsub(control\newdisp.ctl)
  8674.  
  8675. *prompt
  8676. setnv(norefresh=)
  8677. say (%MIN%1%&0&$7$%CACT%$0$&15& %LEFT% Minutes Remain. Please select, %FNAME%&12&: &14&$0$*)
  8678. if (%nv%didwip%)<>(1) then cask(%CRON%*)
  8679. if (%nv%didwip%)=(1) then jump (wipask)
  8680. setnv(wipe=)
  8681. ;---PowerStak Block 2
  8682.  
  8683. *stk
  8684. menuequal(a=%resp%)
  8685. DEQUEUE(a)
  8686. setequal(/nvqueue=%var%a)
  8687. Setequal(/resp=%aresp%)
  8688. ;---PowerStak Block 2 End---
  8689. Get(%RESP%,1,1)
  8690. If(%ARESP%)=(/) then Goto(Anywhere)
  8691. If(%ARESP%)=(?) then Goto(OlHelp)
  8692. MenuEqual(/RESP=%RESP%)
  8693. BigIf (CHAT:CHAT,VF:VIEWFILE,<CR>:SDISP,RELOG:RELOGON,G:GOODBYE,?:OLHELP,X:EXP,V:VIEWLOG,S:SHELL,K:KILL,D:DOWN,O:VNO,Q:QT,F:FIL,M:MS,E:ED,N:NEWS,EX:EXC)
  8694. if (%resp%)=(CTL) then
  8695. clearscr
  8696. syscontrol (3)
  8697. endif
  8698.  
  8699. goto (badsel)
  8700.  
  8701. *boot
  8702. exec(\dos\boote.com)
  8703.  
  8704. *badsel
  8705. loadsub(control\macros\badsel.ctl)
  8706. ;Clear Stack on Error!
  8707. ;---PowerStak Block 3
  8708. setequal(/nvqueue=)
  8709. ;---PowerStak Block 3 End
  8710. goto (disp)
  8711.  
  8712. *wipask
  8713. setequal(y=90)
  8714. loadsub(control\wipask.ctl)
  8715. if (%nv%wiprestreq%)=(1) then goto (disp)
  8716. if (%aresp%)<>(24) then goto (gb)
  8717. loadsub(control\wipask.ctl,goto(twarn))
  8718. goto (wipask)
  8719. *gb
  8720. setEqual(/resp=%resp%)
  8721. if (%resp%)=() then setequal(/resp=<CR>)
  8722. writeln(%resp%)
  8723. ret
  8724.  
  8725. *wdisp
  8726. if (%nv%wipe%)=() then goto (disp)
  8727. setnv(wipe=)
  8728. setnv(wipmode=1)
  8729. goto (disp)
  8730.  
  8731. *Anywhere
  8732. Len(%RESP%)
  8733. If(%ARESP%)<(2) then Goto(Bsel)
  8734. LoadSub(control\macros\anywhere.ctl)
  8735. Goto(disp)
  8736.  
  8737. *exp0
  8738. if (%nv%wipmode%)=(1) then loadsub(control\exitwip.ctl)
  8739. goto(prompt)
  8740. *CHAT
  8741. LoadSub(CONTROL\MACROS\MCHAT.CTL)
  8742. Goto(Disp)
  8743. *VIEWFILE
  8744. LoadSub(CONTROL\MACROS\VIEWFILE.CTL)
  8745. Goto(Disp)
  8746. *RELOGON
  8747. LoadMem(CONTROL\OPEN.CTL)
  8748. *GOODBYE
  8749. LoadSub(CONTROL\MACROS\BYE.CTL)
  8750. Goto(Disp)
  8751. *OLHELP
  8752. LoadSub(OLHELP\SYSOP.MNU)
  8753. Goto(Disp)
  8754. *EXP
  8755. LoadSub(CONTROL\MACROS\EXPERT.CTL)
  8756. Goto(Disp)
  8757. *VIEWLOG
  8758. LoadSub(CONTROL\MACROS\VIEWLOGS.CTL)
  8759. Goto(Disp)
  8760. *SHELL
  8761. EnufSec(100)
  8762. IfNotTrue(Goto(BSel))
  8763. LoadSub(CONTROL\MACROS\SHELL.CTL)
  8764. Goto(Disp)
  8765. *KILL
  8766. LoadSub(CONTROL\MACROS\KILLNODE.CTL)
  8767. Goto(Disp)
  8768. *DOWN
  8769. LoadSub(CONTROL\MACROS\NODEDOWN.CTL)
  8770. Goto(Disp)
  8771. *VNO
  8772. LoadSub(CONTROL\MACROS\VIEWNODE.CTL)
  8773. Goto(Disp)
  8774. *QT
  8775. LoadMem(CONTROL\MAIN.MNU)
  8776. *FIL
  8777. LoadMem(CONTROL\FILES.MNU)
  8778. *MS
  8779. LoadMem(CONTROL\MESS.MNU)
  8780. *ED
  8781. LoadSub(CONTROL\UEDIT.CTL)
  8782. Goto(Disp)
  8783. *NEWS
  8784. LoadSub(CONTROL\MACROS\NEWSEDIT.CTL)
  8785. Goto(Disp)
  8786. *EXC
  8787. LoadSub(CONTROL\MACROS\EXEC.CTL)
  8788. Goto(Disp)
  8789. QUESMNU+    *disp
  8790. delimit( ,;)
  8791. setnv(wiprestreq=)
  8792. SetActivity (Quest. Menu)
  8793. ;---PowerStak Block 1
  8794. len(%nv%queue%)
  8795. notif (%aresp%) = (0) then
  8796. setequal(/resp=%nv%queue%)
  8797. goto(stk) ;If something in the stack then...
  8798. endif
  8799. ;---PowerStak Block 1 End---
  8800. setnv(didwip=)
  8801. if (/:Expert/)=(Y) then linefeed(1)
  8802. if (/:EXPERT/)=(Y) then goto (exp0)
  8803. *sdisp
  8804. if (%graphics%)<>(WIP) then setnv(wipmode=)
  8805. if (%nv%wipmode%)=(1) then if (%nv%norefresh%)=(1) then setnv(jExec=1)
  8806. SetNv (File=ques)
  8807. Seek (display\ques/:sec/.ans)
  8808. IfTrue (SetNv(file=ques/:sec/))
  8809. SetNv (NoInfo=1)
  8810. setnv(asciiequiv=1)
  8811. LoadSub (Control\NewDisp.Ctl)
  8812.  
  8813. *prompt
  8814. setnv(norefresh=)
  8815. say (&0&$7$%CACT%$0$&15& %LEFT% Minutes Remain. Please select, %FNAME%&12&: &14&$0$*)
  8816. if (%nv%didwip%)<>(1) then cask(%CRON%*)
  8817. if (%nv%didwip%)=(1) then jump (wipask)
  8818. ;---PowerStak Block 2
  8819.  
  8820. *stk
  8821. menuequal(a=%resp%)
  8822. DEQUEUE(a)
  8823. setequal(/nvqueue=%var%a)
  8824. setequal(/resp=%aresp%)
  8825. ;---PowerStak Block 2 End---
  8826. Get(%RESP%,1,1)
  8827. If(%ARESP%)=(/) then Goto(Anywhere)
  8828. If(%ARESP%)=(?) then Goto(OlHelp)
  8829. MenuEqual(/RESP=%RESP%)
  8830. BigIf (G:GOODBYE,Q:MAIN,?:OLHELP,<CR>:SDISP,X:EXP)
  8831.  
  8832. number(%RESP%)
  8833. if (%ARESP%)=(No) then goto (bsel)
  8834. say(&7&)
  8835. seek(ques\QUEST%RESP%.que)
  8836. if (%ARESP%)=(No) then goto (bsel)
  8837. setnv(wipe=)
  8838. if (%nv%wipmode%)=(1) then loadsub(control\exitwip.ctl)
  8839. loadsub(ques\QUEST%RESP%.que)
  8840. if (%nv%wipe%)=() then goto (disp)
  8841. setnv(wipe=)
  8842. setnv(wipmode=1)
  8843. goto (disp)
  8844.  
  8845. loadsub(ques\QUEST%RESP%.que)
  8846. goto (disp)
  8847.  
  8848. *bsel
  8849. loadsub(control\macros\badsel.ctl)
  8850. ;Clear Stack on Error!
  8851. ;---PowerStak Block 3
  8852. setequal(/nvqueue=)
  8853. ;---PowerStak Block 3 End
  8854. goto (disp)
  8855.  
  8856. *wipask
  8857. setequal(y=90)
  8858. loadsub(control\wipask.ctl)
  8859. if (%nv%wiprestreq%)=(1) then goto (disp)
  8860. if (%aresp%)<>(24) then goto (gb)
  8861. loadsub(control\wipask.ctl,goto(twarn))
  8862. goto (wipask)
  8863. *gb
  8864. setEqual(/resp=%resp%)
  8865. if (%resp%)=() then setequal(/resp=<CR>)
  8866. writeln(%resp%)
  8867. ret
  8868.  
  8869. *Anywhere
  8870. Len(%RESP%)
  8871. If(%ARESP%)<(2) then Goto(Bsel)
  8872. LoadSub(control\macros\anywhere.ctl)
  8873. Goto(disp)
  8874.  
  8875. *exp0
  8876. if (%nv%wipmode%)=(1) then loadsub(control\exitwip.ctl)
  8877. goto(prompt)
  8878.  
  8879.  
  8880.  
  8881. *GOODBYE
  8882. EnufSec(10)
  8883. IfNotTrue(Goto(BSel))
  8884. LoadSub(CONTROL\MACROS\BYE.CTL)
  8885. Goto(Disp)
  8886.  
  8887. *MAIN
  8888. LoadMem(CONTROL\MAIN.MNU)
  8889.  
  8890. *OLHELP
  8891. LoadSub(OLHELP\QUES.MNU)
  8892. Goto(Disp)
  8893.  
  8894. *EXP
  8895. LoadSub(CONTROL\MACROS\EXPERT.CTL)
  8896. Goto(Disp)
  8897. MAINMNU┼*Disp
  8898. setnv(wiprestreq=)
  8899. delimit( ,;)
  8900. SetActivity (Main Menu)
  8901. ;---PowerStak Block 1
  8902. len(%nv%queue%)
  8903. notif (%aresp%) = (0) then
  8904. setequal(/resp=%nv%queue%)
  8905. goto(stk) ;If something in the stack then...
  8906. endif
  8907. ;---PowerStak Block 1 End---
  8908.  
  8909. *Disp2
  8910. setnv(didwip=)
  8911. if(/:EXPERT/)=(Y) then linefeed(1)
  8912. if(/:EXPERT/)=(Y) then Goto (exp0)
  8913. *sdisp
  8914. if (%graphics%)<>(WIP) then setnv(wipmode=)
  8915. if (%nv%wipmode%)=(1) then if (%nv%norefresh%)=(1) then setnv(jExec=1)
  8916. SetNv (File=main)
  8917. Seek (display\main/:sec/.ans)
  8918. IfTrue (SetNv(file=main/:sec/))
  8919. SetNv (NoInfo=1)
  8920. setnv (asciiequiv=1)
  8921. LoadSub (Control\NewDisp.Ctl)
  8922.  
  8923. *Prompt
  8924. setnv(norefresh=)
  8925. Say(&14&(%AREANAME% Conference))
  8926. Say (%CRON%&0&$7$%CACT%$0$&15& %LEFT% Minutes Remain. Please select, %FNAME%&12&: &14&$0$*)
  8927. if (%nv%didwip%)<>(1) then cask (%CRON%*)
  8928. if (%nv%didwip%)=(1) then jump (wipask)
  8929. ;---PowerStak Block 2
  8930.  
  8931. *stk
  8932. menuequal(a=%resp%)
  8933. DEQUEUE(a)
  8934. setequal(/nvqueue=%var%a)
  8935. setequal(/resp=%aresp%)
  8936. ;---PowerStak Block 2 End---
  8937. Get(%RESP%,1,1)
  8938. If(%ARESP%)=(/) then Goto(Anywhere)  ;if global command
  8939. MenuEqual(/RESP=%RESP%)
  8940. BigIf (G:BYE,?:OLHELP,<CR>:SDISP,X:EXP,P:PAGE,Y:STATS,N:NEWS,C:CMNT,B:BMN,Q:QMN,F:FMN,M:MMN,D:DMN,L:LIST,@:SMN,WHO:WHO,CHAT:CHAT,FIND:FND,BANK:BNK,S:SL0)
  8941. Number(%RESP%)
  8942. IfTrue(goto(ChgConf))
  8943. Goto (bsel)
  8944.  
  8945. *Anywhere
  8946. Len(%RESP%)
  8947. If(%ARESP%)<(2) then Goto(Bsel)
  8948. LoadSub(control\macros\anywhere.ctl)
  8949. Goto(disp)
  8950.  
  8951.  
  8952. *bSel
  8953. LoadSub(control\macros\badsel.ctl)
  8954. ;Clear Stack on Error!
  8955. ;---PowerStak Block 3
  8956. setequal(/nvqueue=)
  8957. ;---PowerStak Block 3 End
  8958. Goto (disp)
  8959.  
  8960. *ChgConf
  8961. SetEqual(z=%RESP%)
  8962. LoadSub(control\macros\CHGZ.CTL)
  8963. Goto(disp)
  8964.  
  8965. *LogonPage
  8966. SetEqual(/PAGE=No)
  8967. Goto(PAGE)
  8968.  
  8969. *wipask
  8970. setequal(y=90)
  8971. loadsub(control\wipask.ctl)
  8972. if (%nv%wiprestreq%)=(1) then goto (disp)
  8973. if (%aresp%)<>(24) then goto (gb)
  8974. loadsub(control\wipask.ctl,goto(twarn))
  8975. goto (wipask)
  8976. *gb
  8977. setEqual(/resp=%resp%)
  8978. if (%resp%)=() then setequal(/resp=<CR>)
  8979. writeln(%resp%)
  8980. ret
  8981.  
  8982. *exp0
  8983. if (%nv%wipmode%)=(1) then loadsub(control\exitwip.ctl)
  8984. goto(prompt)
  8985. *SL1
  8986. EnufSec(10)
  8987. IfNotTrue(Goto(BSel))
  8988. LoadSub(CONTROL\ONHELP.CTL)
  8989. Goto(Disp)
  8990. *SL2
  8991. EnufSec(10)
  8992. IfNotTrue(Goto(BSel))
  8993. LoadSub(CONTROL\FIRST.CTL)
  8994. Goto(Disp)
  8995. *DQ
  8996. SetEqual(q=)
  8997. SetEqual(l=0)
  8998. Goto(Disp)
  8999. *BYE
  9000. EnufSec(10)
  9001. IfNotTrue(Goto(BSel))
  9002. LoadSub(CONTROL\MACROS\BYE.CTL)
  9003. Goto(Disp)
  9004. *OLHELP
  9005. LoadSub(OLHELP\MAIN.MNU)
  9006. Goto(Disp)
  9007. *EXP
  9008. EnufSec(10)
  9009. IfNotTrue(Goto(BSel))
  9010. LoadSub(CONTROL\MACROS\EXPERT.CTL)
  9011. Goto(Disp)
  9012. *PAGE
  9013. EnufSec(10)
  9014. IfNotTrue(Goto(BSel))
  9015. LoadSub(CONTROL\MACROS\PAGE.CTL)
  9016. Goto(Disp)
  9017. *STATS
  9018. EnufSec(10)
  9019. IfNotTrue(Goto(BSel))
  9020. LoadSub(CONTROL\MACROS\STATS.CTL)
  9021. Goto(Disp)
  9022. *NEWS
  9023. EnufSec(10)
  9024. IfNotTrue(Goto(BSel))
  9025. LoadSub(CONTROL\MACROS\NEWS.CTL)
  9026. Goto(Disp)
  9027. *CMNT
  9028. EnufSec(10)
  9029. IfNotTrue(Goto(BSel))
  9030. LoadSub(CONTROL\MACROS\COMMENT.CTL)
  9031. Goto(Disp)
  9032. *BMN
  9033. EnufSec(10)
  9034. IfNotTrue(Goto(BSel))
  9035. LoadMem(CONTROL\BULLET.MNU)
  9036. *QMN
  9037. EnufSec(10)
  9038. IfNotTrue(Goto(BSel))
  9039. LoadMem(CONTROL\QUES.MNU)
  9040. *FMN
  9041. EnufSec(10)
  9042. IfNotTrue(Goto(BSel))
  9043. LoadMem(CONTROL\FILES.MNU)
  9044. *MMN
  9045. EnufSec(10)
  9046. IfNotTrue(Goto(BSel))
  9047. LoadMem(CONTROL\MESS.MNU)
  9048. *DMN
  9049. EnufSec(20)
  9050. IfNotTrue(Goto(BSel))
  9051. LoadMem(CONTROL\DOORS.MNU)
  9052. *LIST
  9053. EnufSec(110)
  9054. IfNotTrue(Goto(BSel))
  9055. LoadSub(CONTROL\MACROS\LIST.CTL)
  9056. Goto(Disp)
  9057. *SMN
  9058. EnufSec(100)
  9059. IfNotTrue(Goto(BSel))
  9060. LoadMem(CONTROL\SYSOP.MNU)
  9061. *WHO
  9062. EnufSec(20)
  9063. IfNotTrue(Goto(BSel))
  9064. LoadSub(CONTROL\MACROS\MWHO.CTL)
  9065. Goto(Disp)
  9066. *CHAT
  9067. EnufSec(20)
  9068. IfNotTrue(Goto(BSel))
  9069. LoadSub(CONTROL\MACROS\MCHAT.CTL)
  9070. Goto(Disp)
  9071. *FND
  9072. LoadSub(CONTROL\MACROS\FIND.CTL)
  9073. Goto(Disp)
  9074. *BNK
  9075. EnufSec(20)
  9076. IfNotTrue(Goto(BSel))
  9077. LoadSub(CONTROL\MACROS\BANK.CTL)
  9078. Goto(Disp)
  9079. *SL0
  9080. EnufSec(10)
  9081. IfNotTrue(Goto(BSel))
  9082. LoadSub(CONTROL\MACROS\SYSINFO.CTL)
  9083. Goto(Disp)
  9084. DOORSMNU╕ *disp
  9085. SetActivity (Doors Menu)
  9086. setnv(wiprestreq=)
  9087. Seek(farea/:lastmsg/\doors.mnu)
  9088. IfTrue(loadmem(farea/:lastmsg/\doors.mnu))
  9089. delimit( ,;)
  9090. ;---PowerStak Block 1
  9091. len(%nv%queue%)
  9092. notif (%aresp%) = (0) then 
  9093.         setequal(/resp=%nv%queue%)       
  9094.         goto(stk) ;If something in the stack then...
  9095. endif
  9096. ;---PowerStak Block 1 End---
  9097. setnv(didwip=)
  9098. if (/Expert)=(Y) then linefeed(1)
  9099. if (/EXPERT)=(Y) then goto (exp0)
  9100.  
  9101. *sdisp
  9102. if (%graphics%)<>(WIP) then setnv(wipmode=)
  9103. if (%nv%wipmode%)=(1) then if (%nv%norefresh%)=(1) then setnv(jExec=1)
  9104. setnv(file=doors)
  9105. seek(display\doors/:sec/.ans)
  9106. iftrue(setnv(file=doors/:sec/))
  9107. setnv(NoInfo=1)
  9108. setnv(asciiequiv=1)
  9109. loadsub(control\newdisp.ctl)
  9110.  
  9111. *prompt
  9112. setnv(norefresh=)
  9113. Jump(GETCTLNAME)
  9114. say (&0&$7$%CACT%$0$&15& %LEFT% Minutes Remain. Please select, %FNAME%&12&: &14&$0$*)
  9115. if (%nv%didwip%)<>(1) then cask(%CRON%*)
  9116. if (%nv%didwip%)=(1) then jump (wipask)
  9117. ;---PowerStak Block 2
  9118.  
  9119. *stk
  9120. setequal(a=%resp%)
  9121. DEQUEUE(a)
  9122. setequal(/nvqueue=%var%a)
  9123. setequal(/resp=%aresp%)
  9124. ;---PowerStak Block 2 End---
  9125. Get(%RESP%,1,1)
  9126. If(%ARESP%)=(/) then Goto(Anywhere)
  9127. If(%ARESP%)=(?) then Goto(OlHelp)
  9128. MenuEqual(/RESP=%RESP%)
  9129. BigIf (G:GOODBYE,Q:MAIN,?:OLHELP,<CR>:SDISP,X:EXP)
  9130. number(%RESP%)
  9131. ifNotTrue( goto (bsel))
  9132. seek(%NV%PREFIX%%RESP%.Bat)
  9133. ifnottrue(goto (bsel))
  9134. clearscr
  9135. Display(Display\%NV%PREFIX%%RESP%)
  9136. Log(--,Executing Door #%RESP%)
  9137. FixFile (door.bt,door.bat)
  9138. setequal (a=/:DOORS/)
  9139. inc(a)
  9140. setequal(/DOORSE=%VAR%A)
  9141. if (%nv%wipmode%)=(1) then loadsub(control\exitwip.ctl)
  9142. Say(&14&&CR&Please wait, Opening Door #%resp% . . .*)
  9143. mcavail(N)
  9144. setactivity(In Door #%RESP%)
  9145. zap(%pbtemp%tagtmp.%node%,%nv%totalTime%)
  9146. appendto(%pbtemp%tagtmp.%node%,%nv%totalfree%)
  9147. Exit (80,door|)
  9148.  
  9149. *bsel
  9150. loadsub(control\macros\badsel.ctl)
  9151. ;Clear Stack on Error!
  9152. ;---PowerStak Block 3
  9153. setequal(/nvqueue=)
  9154. ;---PowerStak Block 3 End
  9155. goto (disp)
  9156.  
  9157. *GOODBYE
  9158. EnufSec(10)
  9159. IfNotTrue(Goto(BSel))
  9160. LoadSub(CONTROL\MACROS\BYE.CTL)
  9161. Goto(Disp)
  9162.  
  9163. *MAIN
  9164. LoadMem(CONTROL\MAIN.MNU)
  9165.  
  9166. *EXP
  9167. LoadSub(CONTROL\MACROS\EXPERT.CTL)
  9168. Goto(Disp)
  9169.  
  9170.  
  9171. *wipask
  9172. setequal(y=90)
  9173. loadsub(control\wipask.ctl)
  9174. if (%nv%wiprestreq%)=(1) then goto (disp)
  9175. if (%aresp%)<>(24) then goto (gb)
  9176. loadsub(control\wipask.ctl,goto(twarn))
  9177. goto (wipask)
  9178. *gb
  9179. setEqual(/resp=%resp%)
  9180. if (%resp%)=() then setequal(/resp=<CR>)
  9181. writeln(%resp%)
  9182. ret
  9183.  
  9184. *OLHELP
  9185. SetNv(atprompt=No)
  9186. SetNv(helpoption=82)
  9187. LoadSub(olhelp\olhelp.ctl)
  9188. Goto(disp)
  9189.  
  9190. *Anywhere
  9191. Len(%RESP%)
  9192. If(%ARESP%)<(2) then Goto(Bsel)
  9193. LoadSub(control\macros\anywhere.ctl)
  9194. Goto(disp)
  9195.  
  9196. *GetCTLName
  9197. SetNV(CtlFile=%CTLNAME%)
  9198. *CTLLoop
  9199. Find(%NV%CTLFILE%,\)
  9200. If(%ARESP%)=(0) then Goto(DoneCTL)
  9201. AddVar(%ARESP%+1=a)
  9202. Len(%NV%CTLFILE%)
  9203. AddVar(%ARESP%+-%VAR%A=b)
  9204. Inc(b)
  9205. Get(%NV%CTLFILE%,%VAR%A,%VAR%B)
  9206. SetNv(CTLFILE=%ARESP%)
  9207. Goto(CTLLoop)
  9208. *DoneCTL
  9209. Get(%NV%CTLFILE%,1,4)
  9210. SetNv(prefix=%ARESP%)
  9211. SetNv(CTLFILE=)
  9212. Ret
  9213.  
  9214. *exp0
  9215. if (%nv%wipmode%)=(1) then loadsub(control\exitwip.ctl)
  9216. goto(prompt)
  9217.  
  9218. MESSMNU┌ *disp
  9219. setnv(wiprestreq=)
  9220. delimit( ,;)
  9221. SetActivity (Message Menu)
  9222. ;---PowerStak Block 1
  9223. len(%nv%queue%)
  9224. notif (%aresp%) = (0) then
  9225. setequal(/resp=%nv%queue%)
  9226. goto(stk) ;If something in the stack then...
  9227. endif
  9228. ;---PowerStak Block 1 End---
  9229.  
  9230. *Disp2
  9231. setnv(didwip=)
  9232. if (/:EXPERT/)=(Y) then goto (exp0)
  9233.  
  9234. *sdisp
  9235. if (%graphics%)<>(WIP) then setnv(wipmode=)
  9236. if (%nv%wipmode%)=(1) then if (%nv%norefresh%)=(1) then setnv(jExec=1)
  9237. setnv(file=mess)
  9238. seek(display\mess/:sec/.ans)
  9239. iftrue(setnv(file=mess/:sec/))
  9240. setnv(NoInfo=1)
  9241. setnv(asciiequiv=1)
  9242. loadsub(control\newdisp.ctl)
  9243. setequal(c=07~Bar~Current Conference: /:lastmsg/:%areaname%~)
  9244. if (%nv%wipmode%)=(1) then loadsub(control\okbox.ctl)
  9245.  
  9246. *prompt
  9247. setnv(norefresh=)
  9248. if (/:Expert/)=(Y) then linefeed(1)
  9249. Say(&14&(%AREANAME% Conference))
  9250. say (&0&$7$%CACT%$0$&15& %LEFT% Minutes Remain. Please select, %FNAME%&12&: &14&$0$*)
  9251. if (%nv%didwip%)<>(1) then cask(%CRON%*)
  9252. if (%nv%didwip%)=(1) then jump (wipask)
  9253. ;---PowerStak Block 2
  9254.  
  9255. *stk
  9256. menuequal(a=%resp%)
  9257. DEQUEUE(a)
  9258. setequal(/nvqueue=%var%a)
  9259. setequal(/resp=%aresp%)
  9260. ;---PowerStak Block 2 End---
  9261. Get(%RESP%,1,1)
  9262. If(%ARESP%)=(/) then Goto(Anywhere)
  9263. If(%ARESP%)=(?) then Goto(OlHelp)
  9264. MenuEqual(/RESP=%RESP%)
  9265. BigIf (U:UPK,D:DPK,G:GOODBYE,<CR>:SDISP,?:OLHELP,X:EXP,J:CHANGE,S:SEARCH,SEL:SELECT,COPY:COPY,SC:SCAN,Q:MAINMN,R:READMN,E:ENTERMN,F:FILESMN,A:SL0)
  9266. goto (bsel)
  9267.  
  9268. *Anywhere
  9269. Len(%RESP%)
  9270. If(%ARESP%)<(2) then Goto(Bsel)
  9271. LoadSub(control\macros\anywhere.ctl)
  9272. Goto(disp)
  9273.  
  9274. *fm
  9275. menuask(%NOCR%#: *)
  9276. if (%resp%)=() then goto(disp)
  9277. findms(%resp%)
  9278. say( %aresp%)
  9279. goto(fm)
  9280.  
  9281. *bsel
  9282. loadsub(control\macros\badsel.ctl)
  9283. ;Clear Stack on Error!
  9284. ;---PowerStak Block 3
  9285. setequal(/nvqueue=)
  9286. ;---PowerStak Block 3 End
  9287. goto (disp)
  9288.  
  9289.  
  9290. *wipask
  9291. setequal(y=90)
  9292. loadsub(control\wipask.ctl)
  9293. if (%nv%wiprestreq%)=(1) then goto (disp)
  9294. if (%aresp%)<>(24) then goto (gb)
  9295. loadsub(control\wipask.ctl,goto(twarn))
  9296. goto (wipask)
  9297. *gb
  9298. setEqual(/resp=%resp%)
  9299. if (%resp%)=() then setequal(/resp=<CR>)
  9300. writeln(%resp%)
  9301. ret
  9302.  
  9303. *exp0
  9304. if (%nv%wipmode%)=(1) then loadsub(control\exitwip.ctl)
  9305. goto(prompt)
  9306. *UPK
  9307. LoadSub(CONTROL\MACROS\UPKT.CTL)
  9308. Goto(Disp)
  9309. *DPK
  9310. LoadSub(CONTROL\MACROS\DPKT.CTL)
  9311. Goto(Disp)
  9312. *GOODBYE
  9313. EnufSec(10)
  9314. IfNotTrue(Goto(BSel))
  9315. LoadSub(CONTROL\MACROS\BYE.CTL)
  9316. Goto(Disp)
  9317. *OLHELP
  9318. LoadSub(OLHELP\MESS.MNU)
  9319. Goto(Disp)
  9320. *EXP
  9321. EnufSec(10)
  9322. IfNotTrue(Goto(BSel))
  9323. LoadSub(CONTROL\MACROS\EXPERT.CTL)
  9324. Goto(Disp)
  9325. *CHANGE
  9326. EnufSec(10)
  9327. IfNotTrue(Goto(BSel))
  9328. LoadSub(CONTROL\MACROS\CHG.CTL)
  9329. Goto(Disp)
  9330. *SEARCH
  9331. EnufSec(10)
  9332. IfNotTrue(Goto(BSel))
  9333. LoadSub(CONTROL\MACROS\SEARCHM.CTL)
  9334. Goto(Disp)
  9335. *SELECT
  9336. EnufSec(10)
  9337. IfNotTrue(Goto(BSel))
  9338. LoadSub(CONTROL\MACROS\SELECT.CTL)
  9339. Goto(Disp)
  9340. *COPY
  9341. EnufSec(100)
  9342. IfNotTrue(Goto(BSel))
  9343. LoadSub(CONTROL\MACROS\MCOPY.CTL)
  9344. Goto(Disp)
  9345. *SCAN
  9346. EnufSec(10)
  9347. IfNotTrue(Goto(BSel))
  9348. LoadSub(CONTROL\MACROS\SCANM.CTL)
  9349. Goto(Disp)
  9350. *MAINMN
  9351. EnufSec(10)
  9352. IfNotTrue(Goto(BSel))
  9353. LoadMem(CONTROL\MAIN.MNU)
  9354. *READMN
  9355. EnufSec(10)
  9356. IfNotTrue(Goto(BSel))
  9357. LoadSub(CONTROL\READ.CTL)
  9358. Goto(Disp)
  9359. *ENTERMN
  9360. EnufSec(10)
  9361. IfNotTrue(Goto(BSel))
  9362. LoadSub(CONTROL\MACROS\ENTER.CTL)
  9363. Goto(Disp)
  9364. *FILESMN
  9365. EnufSec(10)
  9366. IfNotTrue(Goto(BSel))
  9367. LoadMem(CONTROL\FILES.MNU)
  9368. *SL0
  9369. LoadSub(CONTROL\MACROS\ABAND.CTL)
  9370. Goto(Disp)
  9371. BULLETMNUk *Disp
  9372. setnv(wiprestreq=)
  9373. DeLimit( ,;)
  9374. SetActivity (Bulletins Menu)
  9375. Seek(farea/:lastmsg/\bullet.mnu)
  9376. IfTrue(Loadmem(farea/:lastmsg/\bullet.mnu))
  9377. ;---PowerStak Block 1
  9378. len(%nv%queue%)
  9379. notif (%aresp%) = (0) then
  9380. setequal(/resp=%nv%queue%)
  9381. goto(stk) ;If something in the stack then...
  9382. endif
  9383. ;---PowerStak Block 1 End---
  9384. setnv(didwip=)
  9385. if (/:EXPERT/)=(Y) then linefeed(1)
  9386. If (/:EXPERT/)=(Y) Then Goto(Exp0)
  9387. *Sdisp
  9388. if (%graphics%)<>(WIP) then setnv(wipmode=)
  9389. if (%nv%wipmode%)=(1) then if (%nv%norefresh%)=(1) then setnv(jExec=1)
  9390. setnv(file=blt)
  9391. seek(display\blt/:sec/.ans)
  9392. iftrue(setnv(file=blt/:sec/))
  9393. setnv(NoInfo=1)
  9394. setnv(asciiequiv=1)
  9395. loadsub(control\newdisp.ctl)
  9396.  
  9397. *Prompt
  9398. setnv(norefresh=)
  9399. DefPause($7$&0&[Send more text?]$0$&3& (&11&S&3&)top, (&11&N&3&)onstop or (&11&C&3&)ontinue?&12&: &7&)
  9400. DefPif(s:stop,n:nonstop,g:goodbye)   ;define our pause prompt...
  9401. Jump(GETCTLNAME)
  9402. say (&0&$7$%CACT%$0$&15& %LEFT% Minutes Remain. Please select, %FNAME%&12&: &14&$0$*)
  9403. if (%nv%didwip%)<>(1) then menuask(%CRON%*)
  9404. if (%nv%didwip%)=(1) then jump (wipask)
  9405. If(%RESP%)=(<CR>) then Goto(Sdisp)
  9406. ;---PowerStak Block 2
  9407.  
  9408. *stk
  9409. menuequal(a=%resp%)
  9410. DEQUEUE(a)
  9411. setequal(/nvqueue=%var%a)
  9412. setequal(/resp=%aresp%)
  9413. ;---PowerStak Block 2 End---
  9414. Get(%RESP%,1,1)
  9415. If(%ARESP%)=(/) then Goto(Anywhere)
  9416. MenuEqual(/RESP=%RESP%)
  9417. BigIf (Q:LOADMAIN,G:GOODBYE,X:EXPERT,?:OLHELP)
  9418. Number(%RESP%) ;is it a number?!
  9419. IfNotTrue ( Goto (bsel))
  9420. kill(display\blttmpl.wip)
  9421. Log(--,Bulletin %RESP% Read.)
  9422. seek(display\%NV%PREFIX%%resp%.wip)
  9423. ifnottrue(if (%nv%wipmode%)=(1) then goto (wip))
  9424. Display (Display\%NV%PREFIX%%RESP%)
  9425. enter
  9426. goto (disp)
  9427. *wip
  9428. setnv(textfile=%NV%PREFIX%%resp%.asc)
  9429. loadsub(control\ewipscr.ctl,setnv(wipf=blttmpl))
  9430. goto(disp)
  9431.  
  9432. *bsel
  9433. LoadSub(control\macros\badsel.ctl)
  9434. ;Clear Stack on Error!
  9435. ;---PowerStak Block 3
  9436. setequal(/nvqueue=)
  9437. ;---PowerStak Block 3 End
  9438. Goto (disp)
  9439.  
  9440. *wipask
  9441. setequal(y=90)
  9442. loadsub(control\wipask.ctl)
  9443. if (%nv%wiprestreq%)=(1) then goto (disp)
  9444. if (%aresp%)<>(24) then goto (gb)
  9445. loadsub(control\wipask.ctl,goto(twarn))
  9446. goto (wipask)
  9447. *gb
  9448. setEqual(/resp=%resp%)
  9449. if (%resp%)=() then setequal(/resp=<CR>)
  9450. writeln(%resp%)
  9451. ret
  9452.  
  9453. *GetCTLName
  9454. SetNV(CtlFile=%CTLNAME%)
  9455. *CTLLoop
  9456. Find(%NV%CTLFILE%,\)
  9457. If(%ARESP%)=(0) then Goto(DoneCTL)
  9458. AddVar(%ARESP%+1=a)
  9459. Len(%NV%CTLFILE%)
  9460. AddVar(%ARESP%+-%VAR%A=b)
  9461. Inc(b)
  9462. Get(%NV%CTLFILE%,%VAR%A,%VAR%B)
  9463. SetNv(CTLFILE=%ARESP%)
  9464. Goto(CTLLoop)
  9465. *DoneCTL
  9466. Get(%NV%CTLFILE%,1,4)
  9467. SetNv(prefix=%ARESP%)
  9468. SetNv(CTLFILE=)
  9469. Ret
  9470.  
  9471. *Anywhere
  9472. Len(%RESP%)
  9473. If(%ARESP%)<(2) then Goto(Bsel)
  9474. LoadSub(control\macros\anywhere.ctl)
  9475. Goto(disp)
  9476.  
  9477. *exp0
  9478. if (%nv%wipmode%)=(1) then loadsub(control\exitwip.ctl)
  9479. goto(prompt)
  9480.  
  9481. *LOADMAIN
  9482. LoadMem(CONTROL\MAIN.MNU)
  9483.  
  9484. *GOODBYE
  9485. LoadSub(CONTROL\MACROS\BYE.CTL)
  9486. Goto(Disp)
  9487.  
  9488. *EXPERT
  9489. LoadSub(CONTROL\MACROS\EXPERT.CTL)
  9490. Goto(Disp)
  9491.  
  9492. *OLHELP
  9493. LoadSub(OLHELP\BULLET.MNU)
  9494. Goto(Disp)
  9495. WIPRUNCTLA
  9496. *isithere0
  9497.    fdate(WIP\RESOURCE\%nv%file%)
  9498. setequal(d=%aresp%)
  9499. seekrep(d,45,47)
  9500. get(&d,1,1)
  9501. if (%aresp%)=(0) then
  9502. get(&d,2,1000)
  9503. setequal(d=%aresp%)
  9504. endif
  9505.    ftime(WIP\RESOURCE\%nv%file%)
  9506.    setnv(time=%aresp%)
  9507.    setequal(c=10~%nv%file%~%nv%time%~%var%d~)
  9508.    jump (wipc)
  9509.    comlineinput(60,l)
  9510.    if (%aresp%)=(24) then goto (isithere0)
  9511.    if (%resp%)=(1) then goto (execr)
  9512.    setequal(c=11~Z~)
  9513.    jump (wipc)
  9514.    exec(dsz.com port %port% speed %lbaud% sz WIP\RESOURCE\%nv%file%)
  9515.    secpause(1)
  9516.    flushout
  9517. *execr
  9518.    setequal(c=0C~attach\%nv%file%~~)
  9519.    jump (wipc)
  9520. return
  9521.  
  9522. *GCHAR
  9523. COMPRINT(%NV%TEXT%)
  9524. SETEQUAL(A=0)
  9525. DO
  9526. COMKEY
  9527. ASCII
  9528. IF(%ARESP%)=(21) THEN GOTO(GCHAR)
  9529. INC(A)
  9530. IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET
  9531. IF(%ARESP%)=(&B) THEN RET
  9532. IF(&A)>(200) THEN RET
  9533. IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%)
  9534. DELAY18TH(2)
  9535. LOOP
  9536. *WIPC
  9537. LOCALKEY(1)
  9538. IFNOTTRUE(GOTO(NOLKEY))
  9539. SYSKEYCHECK
  9540. SETEQUAL(/RESP=)
  9541. SETEQUAL(/RESP=)
  9542. *NOLKEY
  9543. CCARRIER
  9544. IF(%ARESP%)=(0) THEN GOTO (NOC0)
  9545. CHECKSUM(%VAR%C)
  9546. SETEQUAL(B=6)
  9547. SETNV(TEXT=$%ARESP%%VAR%C%C%13%)
  9548. SETNV(PBACK=)
  9549. JUMP(GCHAR)
  9550. if(%ARESP%)<>(6) THEN FLUSHOUT
  9551. IF(%ARESP%)<>(6) THEN JUMP(GCHAR)
  9552. setequal(c=%aresp%)
  9553. SETEQUAL(/IBUFF=%NV%PBACK%)
  9554. LEN(%NV%PBACK%)
  9555. SETEQUAL(/IBUFF0=%ARESP%)
  9556. SETEQUAL(/ARESP=%VAR%C)
  9557. RET
  9558. *NOC0
  9559. log(<<,Carrier lost.)
  9560. quitbbs
  9561. DOWNATTCTLsetactivity(Downloading Files)
  9562.  
  9563. display (display\vwarn)
  9564.  
  9565. If(%LOCAL%)=(TRUE) then Goto(lcl)
  9566.         *pickprot
  9567. display (display\dnPROTS1)
  9568. MenuAsk (&3&Which transfer protocol would you like to use?&12&: &15&*)
  9569. if (%RESP%)=(Q) then goto (aborted)
  9570. len(%RESP%)
  9571. notif (%ARESP%)=(1) then goto (Pprob) ;no batch protocols allowed...
  9572. find(%resp%,**)
  9573. iftrue(setequal(/resp=Z))
  9574. seek(protocol\%RESP%-Ad.BT)
  9575. iftrue (goto (Pok))
  9576.  
  9577.         *pprob
  9578. loadsub(control\macros\badsel.ctl)
  9579. goto (pickprot)
  9580.  
  9581.         *Pok
  9582. setequal(r=%RESP%)
  9583. setequal(x=%MSGATTNAME%)
  9584. size(%ATTPAT%%var%x)
  9585. ttime(%ARESP%)
  9586. cmpval(%TTIM%,/:LEFT/)
  9587. if (%ARESP%)=(No) then goto (notenuftime)
  9588. say(&11&)
  9589. say(We're ready to send the file.  Please start receiving now.)
  9590. fixfile(protocol\%var%r-ad.bt,%pbtemp%%var%r-ad.bat)
  9591. Kill(%pbtemp%%ATTn0%.%ATTEXT%)
  9592. If(%STOREDEXT%)=() then fcopy(%ATTPAT%%ATTn0%.%ATTEXT%,%pbtemp%%ATTn0%.%ATTEXT%)
  9593. NotIf(%STOREDEXT%)=() then fcopy(%ATTPAT%%ATTn0%.%STOREDEXT%,%pbtemp%%ATTn0%.%ATTEXT%)
  9594. ;temporarily copy stored attach file into user-given attach filename
  9595. ;Enter
  9596. exec(%pbtemp%%var%r-ad.BAT│)
  9597. Kill(%pbtemp%%ATTn0%.%ATTEXT%)
  9598.  
  9599.         *success
  9600. notif (%ARESP%)=(0) then goto (aborted)
  9601. log(--,Attach downloaded (%var%x))
  9602. display(display\attsucc1)
  9603. Return
  9604.  
  9605.         *notenuftime
  9606. display(display\NODLTIME)
  9607. Return
  9608.  
  9609.         *aborted
  9610. log(--,Attach download aborted (%var%x))
  9611. setequal(x=)
  9612. flushout
  9613. display(display\attabt1)
  9614. Return
  9615.  
  9616.         *lcl
  9617. menuask(&CR&&15&Please specify the path (e.g. C:\DLS\) for this file&12&: &14&*)
  9618. setequal(k=10)
  9619. initclock
  9620. setequal(n=LOCAL)
  9621. If(%STOREDEXT%)=() then fcopy(%ATTPAT%%ATTn0%.%ATTEXT%,%resp%\%ATTn0%.%ATTEXT%)
  9622. NotIf(%STOREDEXT%)=() then fcopy(%ATTPAT%%ATTn0%.%STOREDEXT%,%resp%\%ATTn0%.%ATTEXT%)
  9623. notif (%ARESP%)=(0) then goto (aborted)
  9624. goto (success)
  9625. BULLETSCTL~*00
  9626.  
  9627. If (%NEWSEC%)<>(/:SEC/) Then goto (notnew)
  9628. if (%nv%wipmode%)<>(1) then display(display\NEWUSER1)
  9629. if (%nv%wipmode%)<>(1) then goto (notnew)
  9630. loadsub(control\ewipscr.ctl,setnv(wipf=newuser1))
  9631. *NotNew
  9632. Get(/:BIRTH/,1,6)  ;get 1st 6 chars of user's birthday
  9633. SetEqual(a=%ARESP%)
  9634. Get(%DATE%,1,6) ;get first 6 chars of date
  9635. If (&a)=(%ARESP%) Then LoadSub(control\birth.ctl) ;if bday show scr
  9636.         
  9637.  
  9638. if (/:LAST/)=(%date%) then goto (notfirst)
  9639. if (%nv%wipmode%)<>(1) then goto (notwip4)
  9640. loadsub(control\wipsound.ctl,setnv(file=welcome.wav))
  9641. *notwip4
  9642. if (%nv%wipmode%)<>(1) then display (Display\OneAday1)  ;if first call today...
  9643. if (%nv%wipmode%)<>(1) then goto (notfirst)
  9644. loadsub(control\ewipscr.ctl,setnv(wipf=oneaday1))
  9645. *notfirst
  9646. seek(areas\news/:lastmsg/.asc)
  9647. iftrue(loadsub(control\macros\cnfnews.ctl))
  9648.  
  9649. loadsub(control\newdisp.ctl,setnv(file=%usern%))
  9650.  
  9651. ;loadsub(control\newdisp.ctl,setnv(file=quik))
  9652.  
  9653. If (/:EXPERT/)=(Y) Then loadsub(control\newdisp.ctl,setnv(file=EXPERT))
  9654. Seek(logon.bat)
  9655. IfTrue (Exec(logon.bat))  ;run LOGON.BAT batch file.
  9656. if (%Event%)=(TRUE) then loadsub(control\newdisp.ctl,setnv(file=event))
  9657.  
  9658. ;if (%SEC%)=(10) then loadmem(control\newu.mnu)
  9659.  
  9660. LoadSub(Control\Macros\Newbull.ctl) ;show new bulletins
  9661. IfNotTrue(LoadMem(control\Main.mnu))
  9662. if (%aresp%)=(NONE) then loadmem(control\main.mnu)
  9663. LoadMem(Control\ViewB.ctl) ;ask "view bulletins menu?"
  9664. MSCANCTL╨Say(&CR&&15&Scanning for new mail.  &10&Press (SPACE) to Quit.&CR&)
  9665. Clearmem
  9666.  
  9667. EraseVar
  9668. Say(&15&Scanning...%White%)
  9669.  
  9670. setnv(lconf=/:lastmsg/)
  9671.  
  9672. SetEqual(h=0)
  9673.  
  9674. *restart
  9675. if (%nv%wipmode%)=(1) then
  9676.   setnv(NoInfo=1)
  9677.   loadsub(control\ewipscr.ctl,setnv(wipf=mscan))
  9678. endif
  9679.  
  9680. *st0
  9681. ClearMem
  9682.  
  9683.  
  9684. *stscan
  9685. inc(h)
  9686. SelArea(%var%h)
  9687.  
  9688. EnufSec(%AREASEC%)
  9689. ifnottrue(Goto (chkeof))
  9690. comkey
  9691. if (%resp%)=(s) then goto (firstmn)
  9692. if (%resp%)=(t) then goto (firstmn)
  9693. if (%resp%)=(o) then goto (firstmn)
  9694. if (%resp%)=(p) then goto (firstmn)
  9695. if (%resp%)=( ) then goto (firstmn)
  9696. if (%nv%wipmode%)=(1) then
  9697.   setequal(c=07~nosel1~%var%h %AREANAME%)
  9698.   jump (wipc)
  9699.   setequal(c=0A~)
  9700.   jump (wipc)
  9701. endif
  9702. Scan(%var%h,%NAME%,%USERN%,%var%h %AREANAME%|,60)
  9703. IfTrue (goto (yesmail))
  9704. localkey(1)
  9705. if (%aresp%)=( ) then goto (firstmn)
  9706.  
  9707. *chkeof
  9708. If (&h)=(%MAXAREA%) Then goto (firstmn)
  9709. Goto (stscan)
  9710.  
  9711. *FIRSTMN
  9712. flushout
  9713. setequal(/lastmsg=%nv%lconf%)
  9714. setnv(lconf=)
  9715. SelArea(/:LASTMSG/)
  9716. if (%nv%wipmode%)=(1) then
  9717.   setequal(c=07~nosel1~Scan Complete!~)
  9718.   jump (wipc)
  9719. endif
  9720.  
  9721. Say(%Yellow%&CR&&CR&Message scan complete!)
  9722. SetEqual (/WAIT=N)
  9723.  
  9724. LoadMem(control\bullets.ctl)
  9725.  
  9726. *yesmail
  9727. SetEqual (/lastmsg=%var%h)
  9728. if (%nv%wipmode%)<>(1) then Say(&CR&&15&Mail has been found for you in the&9& %AREANAME% %hWhite%conference!%hWhite%)
  9729. SetEqual(u=2)
  9730. notif (^2)=() then goto (ym1)
  9731. setnv(wtext=Message number ^:1^)
  9732. if (%nv%wipmode%)<>(1) then say(&10&Message number &11&^:1^)
  9733. goto (bymail)
  9734. *ym1
  9735. setnv(wtext=Message numbers: ^:1^)
  9736. if (%nv%wipmode%)<>(1) then say(&10&Message numbers:&11&&CR&^:1^*)
  9737. *ymail
  9738. setequal(z=^:u^)
  9739. if (%var%z)=() then Goto (bym2)
  9740. if (%nv%wipmode%)<>(1) then Say(, ^:u^*)
  9741. setnv(wtext=%nv%wtext%, ^:u^)
  9742. inc(u)
  9743. Goto (ymail)
  9744. *bym2
  9745. linefeed(1)
  9746. *bymail
  9747. setnv(hi=%var%h)
  9748. if (%nv%wipmode%)<>(1) then goto (nowip)
  9749.  
  9750.   writeln ()
  9751.   setnv(Ctext=%nv%wtext%)
  9752.   setnv(Qtext=Would you like to read these messages?)
  9753.   jump (yesno2)
  9754.  
  9755. *nowip
  9756. if (%nv%wipmode%)<>(1) then
  9757. flushout
  9758. Say(&CR&&15&Would you like to read these messages? (&12&Y&15&/&12&N&15&)&14&*)
  9759. back(4)
  9760. YesNoAsk(*)
  9761. endif
  9762. If (%RESP%)=(Yes) Then Goto (Rmail)
  9763. if (%nv%wipmode%)<>(1) then goto (back)
  9764. if (%var%h)=>(%maxarea%) then goto (firstmn)
  9765. if (%nv%wipmode%)=() then goto (st0)
  9766. setequal(c=0A~)
  9767. jump (wipc)
  9768. goto(st0)
  9769. *back
  9770. setequal(h=%nv%hi%)
  9771. setnv(hi=)
  9772. if (%nv%wipmode%)<>(1) then ClearScr
  9773. InitTxt
  9774. if (%var%h)=>(%MAXAREA%) then goto (firstmn)
  9775. if (%nv%wipmode%)=(1) then goto (restart)
  9776. Say(%Yellow%&CR&Scanning...%White%)
  9777. ClearMem
  9778. SetActivity(Logging on...)
  9779. Goto (chkeof)
  9780. *Rmail
  9781. Say(&CR&%hCyan%Please wait while we retrieve your mail...*)
  9782. SetEqual(r=10)
  9783. SetEqual(y=^:1^)
  9784. himsg(/:LASTMSG/)
  9785. SetEqual(f=%ARESP%)
  9786. lowmsg(/:lastmsg/)
  9787. SetEqual(n=%ARESP%)
  9788. SetEqual(u=1)
  9789. setequal(/nvsnsearch=1)
  9790. If(/:GRAPHICS/)=(ASCII) then LoadSub(control\READ.CTL,Goto (repeat))
  9791. if (%nv%wipmode%)=(1) then goto (wipInBox)
  9792. NotIf(/:GRAPHICS/)=(ASCII) then Loadsub(control\READl.CTL,Goto (repeat))
  9793. goto (back)
  9794.  
  9795. *wipInBox
  9796. loadsub(control\readlwip.ctl,goto(repeat))
  9797. goto(back)
  9798.  
  9799. *GCHAR
  9800. COMPRINT(%NV%TEXT%)
  9801. SETEQUAL(A=0)
  9802. DO
  9803. COMKEY
  9804. ASCII
  9805. IF(%ARESP%)=(21) THEN GOTO(GCHAR)
  9806. INC(A)
  9807. IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET
  9808. IF(%ARESP%)=(&B) THEN RET
  9809. IF(&A)>(45) THEN RET
  9810. IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%)
  9811. DELAY18TH(2)
  9812. LOOP
  9813. *WIPC
  9814. LOCALKEY(1)
  9815. IFNOTTRUE(GOTO(NOLKEY))
  9816. SYSKEYCHECK
  9817. SETEQUAL(/RESP=)
  9818. SETEQUAL(/RESP=)
  9819. *NOLKEY
  9820. CCARRIER
  9821. IF(%ARESP%)=(0) THEN GOTO (NOC0)
  9822. CHECKSUM(%VAR%C)
  9823. SETEQUAL(B=6)
  9824. SETNV(TEXT=$%ARESP%%VAR%C%C%13%)
  9825. SETNV(PBACK=)
  9826. JUMP(GCHAR)
  9827. IF(%ARESP%)<>(6) THEN JUMP(GCHAR)
  9828. SETEQUAL(/IBUFF=%NV%PBACK%)
  9829. LEN(%NV%PBACK%)
  9830. SETEQUAL(/IBUFF0=%ARESP%)
  9831. RET
  9832. *NOC0
  9833. log(<<,Carrier lost.)
  9834. quitbbs
  9835.  
  9836. *yesno2
  9837. flushout
  9838. if (%nv%wipmode%)<>(1) then goto (nwYn)
  9839. writeln(Y/N Question: %nv%Qtext%)
  9840. setequal(c=13~%nv%Ctext%   %nv%Qtext%~Mail Found!~2~)
  9841. jump (wipc)
  9842.    *gi2
  9843.    comlineinput(180,l)
  9844.    if (%aresp%)=(24) then
  9845.     log(<<,User did not press a key for a while. Timeout)
  9846.     display(display\timeout)
  9847.     quitbbs
  9848.     endif
  9849.    *tryr
  9850.    setequal(r=%resp%)
  9851.    ascii
  9852.    if (%aresp%)=(21) then goto (yesno2)
  9853.    if (%aresp%)=(6) then
  9854.      len(%var%r)
  9855.      if (%aresp%)=(1) then goto (gi2)
  9856.      get(&r,2,1000)
  9857.      setequal(/resp=%aresp%)
  9858.      goto (tryr)
  9859.    endif
  9860.    if (%resp%)=(2) then setequal(/resp=Yes)
  9861.    if (%resp%)=(3) then setequal(/resp=No)
  9862. ret
  9863. *nwyn
  9864. say(&15&%nv%Ctext%&CR&)
  9865. Say(&15&%nv%Qtext% *)
  9866.  
  9867. *yesno
  9868.  Say(&15&(&12&Y&15&/&12&N&15&)&14&*)
  9869.  Back(4)
  9870.  YesNoAsk(*)
  9871. ret
  9872.  
  9873. QUESTYP┴    *disp
  9874. delimit( ,;)
  9875. setnv(wiprestreq=)
  9876. SetActivity (Unnamed Menu)
  9877. ;---PowerStak Block 1
  9878. len(%nv%queue%)
  9879. notif (%aresp%) = (0) then 
  9880.         setequal(/resp=%nv%queue%)       
  9881.         goto(stk) ;If something in the stack then...
  9882. endif
  9883. ;---PowerStak Block 1 End---
  9884. setnv(didwip=)
  9885. if (/:Expert/)=(Y) then linefeed(1)
  9886. if (/:EXPERT/)=(Y) then goto (exp0)
  9887. *sdisp
  9888. if (%graphics%)<>(WIP) then setnv(wipmode=)
  9889. if (%nv%wipmode%)=(1) then if (%nv%norefresh%)=(1) then setnv(jExec=1)
  9890. setnv(file=ques)
  9891. seek(display\ques/:sec/.ans)
  9892. iftrue(setnv(file=ques/:sec/))
  9893. setnv(NoInfo=1)
  9894. setnv(asciiequiv=1)
  9895. loadsub(control\newdisp.ctl)
  9896.  
  9897. *prompt
  9898. setnv(norefresh=)
  9899. say (&0&$7$%CACT%$0$&15& %LEFT% Minutes Remain. Please select, %FNAME%&12&: &14&$0$*)
  9900. if (%nv%didwip%)<>(1) then cask(%CRON%*)
  9901. if (%nv%didwip%)=(1) then jump (wipask)
  9902. ;---PowerStak Block 2
  9903.  
  9904. *stk
  9905. setequal(a=%resp%)
  9906. DEQUEUE(a)
  9907. setequal(/nvqueue=%var%a)
  9908. setequal(/resp=%aresp%)
  9909. ;---PowerStak Block 2 End---
  9910. Get(%RESP%,1,1)
  9911. If(%ARESP%)=(/) then Goto(Anywhere)
  9912. If(%ARESP%)=(?) then Goto(OlHelp)
  9913. MenuEqual(/RESP=%RESP%)
  9914. BigIf (G:GOODBYE,Q:MAIN,?:OLHELP,<CR>:SDISP,X:EXP)
  9915.  
  9916. number(%RESP%)
  9917. if (%ARESP%)=(No) then goto (bsel)
  9918. say(&7&)
  9919. seek(ques\QUEST%RESP%.que)
  9920. if (%ARESP%)=(No) then goto (bsel)
  9921. setnv(wipe=)
  9922. if (%nv%wipmode%)=(1) then loadsub(control\exitwip.ctl)
  9923. loadsub(ques\QUEST%RESP%.que)
  9924. if (%nv%wipe%)=() then goto (disp)
  9925. setnv(wipe=)
  9926. setnv(wipmode=1)
  9927. goto (disp)
  9928.  
  9929. loadsub(ques\QUEST%RESP%.que)
  9930. goto (disp)
  9931.  
  9932. *bsel
  9933. loadsub(control\macros\badsel.ctl)
  9934. ;Clear Stack on Error!
  9935. ;---PowerStak Block 3
  9936. setequal(/nvqueue=)
  9937. ;---PowerStak Block 3 End
  9938. goto (disp)
  9939.  
  9940. *GOODBYE
  9941. EnufSec(10)
  9942. IfNotTrue(Goto(BSel))
  9943. LoadSub(CONTROL\MACROS\BYE.CTL)
  9944. Goto(Disp)
  9945.  
  9946. *MAIN
  9947. LoadMem(CONTROL\MAIN.MNU)
  9948.  
  9949. *HELP
  9950. Display(display\help\ques,/:SEC/)
  9951. Log (--,Viewed Quest. Menu Help)
  9952. Goto (Disp)
  9953.  
  9954. *EXP
  9955. LoadSub(CONTROL\MACROS\EXPERT.CTL)
  9956. Goto(Disp)
  9957.  
  9958. *wipask
  9959. setequal(y=90)
  9960. loadsub(control\wipask.ctl)
  9961. if (%nv%wiprestreq%)=(1) then goto (disp)
  9962. if (%aresp%)<>(24) then goto (gb)
  9963. loadsub(control\wipask.ctl,goto(twarn))
  9964. goto (wipask)
  9965. *gb
  9966. setEqual(/resp=%resp%)
  9967. if (%resp%)=() then setequal(/resp=<CR>)
  9968. writeln(%resp%)
  9969. ret
  9970.  
  9971. *OLHELP
  9972. SetNv(atprompt=No)
  9973. SetNv(helpoption=88)
  9974. LoadSub(olhelp\olhelp.ctl)
  9975. Goto(disp)
  9976.  
  9977. *Anywhere
  9978. Len(%RESP%)
  9979. If(%ARESP%)<(2) then Goto(Bsel)
  9980. LoadSub(control\macros\anywhere.ctl)
  9981. Goto(disp)
  9982.  
  9983. *exp0
  9984. if (%nv%wipmode%)=(1) then loadsub(control\exitwip.ctl)
  9985. goto(prompt)
  9986. DOORSTYP║ *disp
  9987. SetActivity (Unnamed Menu)
  9988. setnv(wiprestreq=)
  9989. Seek(farea/:lastmsg/\doors.mnu)
  9990. IfTrue(loadmem(farea/:lastmsg/\doors.mnu))
  9991. delimit( ,;)
  9992. ;---PowerStak Block 1
  9993. len(%nv%queue%)
  9994. notif (%aresp%) = (0) then 
  9995.         setequal(/resp=%nv%queue%)       
  9996.         goto(stk) ;If something in the stack then...
  9997. endif
  9998. ;---PowerStak Block 1 End---
  9999. setnv(didwip=)
  10000. if (/Expert)=(Y) then linefeed(1)
  10001. if (/EXPERT)=(Y) then goto (exp0)
  10002.  
  10003. *sdisp
  10004. if (%graphics%)<>(WIP) then setnv(wipmode=)
  10005. if (%nv%wipmode%)=(1) then if (%nv%norefresh%)=(1) then setnv(jExec=1)
  10006. setnv(file=doors)
  10007. seek(display\doors/:sec/.ans)
  10008. iftrue(setnv(file=doors/:sec/))
  10009. setnv(NoInfo=1)
  10010. setnv(asciiequiv=1)
  10011. loadsub(control\newdisp.ctl)
  10012.  
  10013. *prompt
  10014. setnv(norefresh=)
  10015. Jump(GETCTLNAME)
  10016. say (&0&$7$%CACT%$0$&15& %LEFT% Minutes Remain. Please select, %FNAME%&12&: &14&$0$*)
  10017. if (%nv%didwip%)<>(1) then cask(%CRON%*)
  10018. if (%nv%didwip%)=(1) then jump (wipask)
  10019. ;---PowerStak Block 2
  10020.  
  10021. *stk
  10022. setequal(a=%resp%)
  10023. DEQUEUE(a)
  10024. setequal(/nvqueue=%var%a)
  10025. setequal(/resp=%aresp%)
  10026. ;---PowerStak Block 2 End---
  10027. Get(%RESP%,1,1)
  10028. If(%ARESP%)=(/) then Goto(Anywhere)
  10029. If(%ARESP%)=(?) then Goto(OlHelp)
  10030. MenuEqual(/RESP=%RESP%)
  10031. BigIf (G:GOODBYE,Q:MAIN,?:OLHELP,<CR>:SDISP,X:EXP)
  10032. number(%RESP%)
  10033. ifNotTrue( goto (bsel))
  10034. seek(%NV%PREFIX%%RESP%.Bat)
  10035. ifnottrue(goto (bsel))
  10036. clearscr
  10037. Display(Display\%NV%PREFIX%%RESP%)
  10038. Log(--,Executing Door #%RESP%)
  10039. FixFile (door.bt,door.bat)
  10040. setequal (a=/:DOORS/)
  10041. inc(a)
  10042. setequal(/DOORSE=%VAR%A)
  10043. if (%nv%wipmode%)=(1) then loadsub(control\exitwip.ctl)
  10044. Say(&14&&CR&Please wait, Opening Door #%resp% . . .*)
  10045. mcavail(N)
  10046. setactivity(In Door #%RESP%)
  10047. zap(%pbtemp%tagtmp.%node%,%nv%totalTime%)
  10048. appendto(%pbtemp%tagtmp.%node%,%nv%totalfree%)
  10049. Exit (80,door|)
  10050.  
  10051. *bsel
  10052. loadsub(control\macros\badsel.ctl)
  10053. ;Clear Stack on Error!
  10054. ;---PowerStak Block 3
  10055. setequal(/nvqueue=)
  10056. ;---PowerStak Block 3 End
  10057. goto (disp)
  10058.  
  10059. *GOODBYE
  10060. EnufSec(10)
  10061. IfNotTrue(Goto(BSel))
  10062. LoadSub(CONTROL\MACROS\BYE.CTL)
  10063. Goto(Disp)
  10064.  
  10065. *MAIN
  10066. LoadMem(CONTROL\MAIN.MNU)
  10067.  
  10068. *EXP
  10069. LoadSub(CONTROL\MACROS\EXPERT.CTL)
  10070. Goto(Disp)
  10071.  
  10072.  
  10073. *wipask
  10074. setequal(y=90)
  10075. loadsub(control\wipask.ctl)
  10076. if (%nv%wiprestreq%)=(1) then goto (disp)
  10077. if (%aresp%)<>(24) then goto (gb)
  10078. loadsub(control\wipask.ctl,goto(twarn))
  10079. goto (wipask)
  10080. *gb
  10081. setEqual(/resp=%resp%)
  10082. if (%resp%)=() then setequal(/resp=<CR>)
  10083. writeln(%resp%)
  10084. ret
  10085.  
  10086. *OLHELP
  10087. SetNv(atprompt=No)
  10088. SetNv(helpoption=82)
  10089. LoadSub(olhelp\olhelp.ctl)
  10090. Goto(disp)
  10091.  
  10092. *Anywhere
  10093. Len(%RESP%)
  10094. If(%ARESP%)<(2) then Goto(Bsel)
  10095. LoadSub(control\macros\anywhere.ctl)
  10096. Goto(disp)
  10097.  
  10098. *GetCTLName
  10099. SetNV(CtlFile=%CTLNAME%)
  10100. *CTLLoop
  10101. Find(%NV%CTLFILE%,\)
  10102. If(%ARESP%)=(0) then Goto(DoneCTL)
  10103. AddVar(%ARESP%+1=a)
  10104. Len(%NV%CTLFILE%)
  10105. AddVar(%ARESP%+-%VAR%A=b)
  10106. Inc(b)
  10107. Get(%NV%CTLFILE%,%VAR%A,%VAR%B)
  10108. SetNv(CTLFILE=%ARESP%)
  10109. Goto(CTLLoop)
  10110. *DoneCTL
  10111. Get(%NV%CTLFILE%,1,4)
  10112. SetNv(prefix=%ARESP%)
  10113. SetNv(CTLFILE=)
  10114. Ret
  10115.  
  10116. *exp0
  10117. if (%nv%wipmode%)=(1) then loadsub(control\exitwip.ctl)
  10118. goto(prompt)
  10119.  
  10120. BULLETTYPi *Disp
  10121. setnv(wiprestreq=)
  10122. DeLimit( ,;)
  10123. SetActivity (Unnamed Menu)
  10124. Seek(farea/:lastmsg/\bullet.mnu)
  10125. IfTrue(Loadmem(farea/:lastmsg/\bullet.mnu))
  10126. ;---PowerStak Block 1
  10127. len(%nv%queue%)
  10128. notif (%aresp%) = (0) then
  10129. setequal(/resp=%nv%queue%)
  10130. goto(stk) ;If something in the stack then...
  10131. endif
  10132. ;---PowerStak Block 1 End---
  10133. setnv(didwip=)
  10134. if (/:EXPERT/)=(Y) then linefeed(1)
  10135. If (/:EXPERT/)=(Y) Then Goto(Exp0)
  10136. *Sdisp
  10137. if (%graphics%)<>(WIP) then setnv(wipmode=)
  10138. if (%nv%wipmode%)=(1) then if (%nv%norefresh%)=(1) then setnv(jExec=1)
  10139. setnv(file=blt)
  10140. seek(display\blt/:sec/.ans)
  10141. iftrue(setnv(file=blt/:sec/))
  10142. setnv(NoInfo=1)
  10143. setnv(asciiequiv=1)
  10144. loadsub(control\newdisp.ctl)
  10145.  
  10146. *Prompt
  10147. setnv(norefresh=)
  10148. DefPause($7$&0&[Send more text?]$0$&3& (&11&S&3&)top, (&11&N&3&)onstop or (&11&C&3&)ontinue?&12&: &7&)
  10149. DefPif(s:stop,n:nonstop,g:goodbye)   ;define our pause prompt...
  10150. Jump(GETCTLNAME)
  10151. say (&0&$7$%CACT%$0$&15& %LEFT% Minutes Remain. Please select, %FNAME%&12&: &14&$0$*)
  10152. if (%nv%didwip%)<>(1) then menuask(%CRON%*)
  10153. if (%nv%didwip%)=(1) then jump (wipask)
  10154. If(%RESP%)=(<CR>) then Goto(Sdisp)
  10155. ;---PowerStak Block 2
  10156.  
  10157. *stk
  10158. menuequal(a=%resp%)
  10159. DEQUEUE(a)
  10160. setequal(/nvqueue=%var%a)
  10161. setequal(/resp=%aresp%)
  10162. ;---PowerStak Block 2 End---
  10163. Get(%RESP%,1,1)
  10164. If(%ARESP%)=(/) then Goto(Anywhere)
  10165. MenuEqual(/RESP=%RESP%)
  10166. BigIf (Q:LOADMAIN,G:GOODBYE,X:EXPERT,?:OLHELP)
  10167. Number(%RESP%) ;is it a number?!
  10168. IfNotTrue ( Goto (bsel))
  10169. kill(display\blttmpl.wip)
  10170. Log(--,Bulletin %RESP% Read.)
  10171. seek(display\%NV%PREFIX%%resp%.wip)
  10172. ifnottrue(if (%nv%wipmode%)=(1) then goto (wip))
  10173. Display (Display\%NV%PREFIX%%RESP%)
  10174. enter
  10175. goto (disp)
  10176. *wip
  10177. setnv(textfile=%NV%PREFIX%%resp%.asc)
  10178. loadsub(control\ewipscr.ctl,setnv(wipf=blttmpl))
  10179. goto(disp)
  10180.  
  10181. *bsel
  10182. LoadSub(control\macros\badsel.ctl)
  10183. ;Clear Stack on Error!
  10184. ;---PowerStak Block 3
  10185. setequal(/nvqueue=)
  10186. ;---PowerStak Block 3 End
  10187. Goto (disp)
  10188.  
  10189. *wipask
  10190. setequal(y=90)
  10191. loadsub(control\wipask.ctl)
  10192. if (%nv%wiprestreq%)=(1) then goto (disp)
  10193. if (%aresp%)<>(24) then goto (gb)
  10194. loadsub(control\wipask.ctl,goto(twarn))
  10195. goto (wipask)
  10196. *gb
  10197. setEqual(/resp=%resp%)
  10198. if (%resp%)=() then setequal(/resp=<CR>)
  10199. writeln(%resp%)
  10200. ret
  10201.  
  10202. *GetCTLName
  10203. SetNV(CtlFile=%CTLNAME%)
  10204. *CTLLoop
  10205. Find(%NV%CTLFILE%,\)
  10206. If(%ARESP%)=(0) then Goto(DoneCTL)
  10207. AddVar(%ARESP%+1=a)
  10208. Len(%NV%CTLFILE%)
  10209. AddVar(%ARESP%+-%VAR%A=b)
  10210. Inc(b)
  10211. Get(%NV%CTLFILE%,%VAR%A,%VAR%B)
  10212. SetNv(CTLFILE=%ARESP%)
  10213. Goto(CTLLoop)
  10214. *DoneCTL
  10215. Get(%NV%CTLFILE%,1,4)
  10216. SetNv(prefix=%ARESP%)
  10217. SetNv(CTLFILE=)
  10218. Ret
  10219.  
  10220. *Anywhere
  10221. Len(%RESP%)
  10222. If(%ARESP%)<(2) then Goto(Bsel)
  10223. LoadSub(control\macros\anywhere.ctl)
  10224. Goto(disp)
  10225.  
  10226. *exp0
  10227. if (%nv%wipmode%)=(1) then loadsub(control\exitwip.ctl)
  10228. goto(prompt)
  10229.  
  10230. *LOADMAIN
  10231. LoadMem(CONTROL\MAIN.MNU)
  10232.  
  10233. *GOODBYE
  10234. LoadSub(CONTROL\MACROS\BYE.CTL)
  10235. Goto(Disp)
  10236.  
  10237. *EXPERT
  10238. LoadSub(CONTROL\MACROS\EXPERT.CTL)
  10239. Goto(Disp)
  10240.  
  10241. *OLHELP
  10242. LoadSub(OLHELP\BULLET.MNU)
  10243. Goto(Disp)
  10244. GENTYP╚*Disp
  10245. setnv(wiprestreq=)
  10246. delimit( ,;)
  10247. SetActivity (Unnamed Menu)
  10248. ;---PowerStak Block 1
  10249. len(%nv%queue%)
  10250. notif (%aresp%) = (0) then
  10251. setequal(/resp=%nv%queue%)
  10252. goto(stk) ;If something in the stack then...
  10253. endif
  10254. ;---PowerStak Block 1 End---
  10255.  
  10256. *Disp2
  10257. setnv(didwip=)
  10258. if(/:EXPERT/)=(Y) then linefeed(1)
  10259. if(/:EXPERT/)=(Y) then Goto (exp0)
  10260. *sdisp
  10261. if (%graphics%)<>(WIP) then setnv(wipmode=)
  10262. if (%nv%wipmode%)=(1) then if (%nv%norefresh%)=(1) then setnv(jExec=1)
  10263. SetNv (File=main)
  10264. Seek (display\main/:sec/.ans)
  10265. IfTrue (SetNv(file=main/:sec/))
  10266. SetNv (NoInfo=1)
  10267. setnv (asciiequiv=1)
  10268. LoadSub (Control\NewDisp.Ctl)
  10269.  
  10270. *Prompt
  10271. setnv(norefresh=)
  10272. Say(&14&(%AREANAME% Conference))
  10273. Say (%CRON%&0&$7$%CACT%$0$&15& %LEFT% Minutes Remain. Please select, %FNAME%&12&: &14&$0$*)
  10274. if (%nv%didwip%)<>(1) then cask (%CRON%*)
  10275. if (%nv%didwip%)=(1) then jump (wipask)
  10276. ;---PowerStak Block 2
  10277.  
  10278. *stk
  10279. menuequal(a=%resp%)
  10280. DEQUEUE(a)
  10281. setequal(/nvqueue=%var%a)
  10282. setequal(/resp=%aresp%)
  10283. ;---PowerStak Block 2 End---
  10284. Get(%RESP%,1,1)
  10285. If(%ARESP%)=(/) then Goto(Anywhere)  ;if global command
  10286. MenuEqual(/RESP=%RESP%)
  10287. BigIf (G:BYE,?:OLHELP,<CR>:SDISP,X:EXP,P:PAGE,Y:STATS,N:NEWS,C:CMNT,B:BMN,Q:QMN,F:FMN,M:MMN,D:DMN,L:LIST,@:SMN,WHO:WHO,CHAT:CHAT,FIND:FND,BANK:BNK,S:SL0)
  10288. Number(%RESP%)
  10289. IfTrue(goto(ChgConf))
  10290. Goto (bsel)
  10291.  
  10292. *Anywhere
  10293. Len(%RESP%)
  10294. If(%ARESP%)<(2) then Goto(Bsel)
  10295. LoadSub(control\macros\anywhere.ctl)
  10296. Goto(disp)
  10297.  
  10298.  
  10299. *bSel
  10300. LoadSub(control\macros\badsel.ctl)
  10301. ;Clear Stack on Error!
  10302. ;---PowerStak Block 3
  10303. setequal(/nvqueue=)
  10304. ;---PowerStak Block 3 End
  10305. Goto (disp)
  10306.  
  10307. *ChgConf
  10308. SetEqual(z=%RESP%)
  10309. LoadSub(control\macros\CHGZ.CTL)
  10310. Goto(disp)
  10311.  
  10312. *LogonPage
  10313. SetEqual(/PAGE=No)
  10314. Goto(PAGE)
  10315.  
  10316. *wipask
  10317. setequal(y=90)
  10318. loadsub(control\wipask.ctl)
  10319. if (%nv%wiprestreq%)=(1) then goto (disp)
  10320. if (%aresp%)<>(24) then goto (gb)
  10321. loadsub(control\wipask.ctl,goto(twarn))
  10322. goto (wipask)
  10323. *gb
  10324. setEqual(/resp=%resp%)
  10325. if (%resp%)=() then setequal(/resp=<CR>)
  10326. writeln(%resp%)
  10327. ret
  10328.  
  10329. *exp0
  10330. if (%nv%wipmode%)=(1) then loadsub(control\exitwip.ctl)
  10331. goto(prompt)
  10332. *SL1
  10333. EnufSec(10)
  10334. IfNotTrue(Goto(BSel))
  10335. LoadSub(CONTROL\ONHELP.CTL)
  10336. Goto(Disp)
  10337. *SL2
  10338. EnufSec(10)
  10339. IfNotTrue(Goto(BSel))
  10340. LoadSub(CONTROL\FIRST.CTL)
  10341. Goto(Disp)
  10342. *DQ
  10343. SetEqual(q=)
  10344. SetEqual(l=0)
  10345. Goto(Disp)
  10346. *BYE
  10347. EnufSec(10)
  10348. IfNotTrue(Goto(BSel))
  10349. LoadSub(CONTROL\MACROS\BYE.CTL)
  10350. Goto(Disp)
  10351. *OLHELP
  10352. LoadSub(OLHELP\MAIN.MNU)
  10353. Goto(Disp)
  10354. *EXP
  10355. EnufSec(10)
  10356. IfNotTrue(Goto(BSel))
  10357. LoadSub(CONTROL\MACROS\EXPERT.CTL)
  10358. Goto(Disp)
  10359. *PAGE
  10360. EnufSec(10)
  10361. IfNotTrue(Goto(BSel))
  10362. LoadSub(CONTROL\MACROS\PAGE.CTL)
  10363. Goto(Disp)
  10364. *STATS
  10365. EnufSec(10)
  10366. IfNotTrue(Goto(BSel))
  10367. LoadSub(CONTROL\MACROS\STATS.CTL)
  10368. Goto(Disp)
  10369. *NEWS
  10370. EnufSec(10)
  10371. IfNotTrue(Goto(BSel))
  10372. LoadSub(CONTROL\MACROS\NEWS.CTL)
  10373. Goto(Disp)
  10374. *CMNT
  10375. EnufSec(10)
  10376. IfNotTrue(Goto(BSel))
  10377. LoadSub(CONTROL\MACROS\COMMENT.CTL)
  10378. Goto(Disp)
  10379. *BMN
  10380. EnufSec(10)
  10381. IfNotTrue(Goto(BSel))
  10382. LoadMem(CONTROL\BULLET.MNU)
  10383. *QMN
  10384. EnufSec(10)
  10385. IfNotTrue(Goto(BSel))
  10386. LoadMem(CONTROL\QUES.MNU)
  10387. *FMN
  10388. EnufSec(10)
  10389. IfNotTrue(Goto(BSel))
  10390. LoadMem(CONTROL\FILES.MNU)
  10391. *MMN
  10392. EnufSec(10)
  10393. IfNotTrue(Goto(BSel))
  10394. LoadMem(CONTROL\MESS.MNU)
  10395. *DMN
  10396. EnufSec(20)
  10397. IfNotTrue(Goto(BSel))
  10398. LoadMem(CONTROL\DOORS.MNU)
  10399. *LIST
  10400. EnufSec(110)
  10401. IfNotTrue(Goto(BSel))
  10402. LoadSub(CONTROL\MACROS\LIST.CTL)
  10403. Goto(Disp)
  10404. *SMN
  10405. EnufSec(100)
  10406. IfNotTrue(Goto(BSel))
  10407. LoadMem(CONTROL\SYSOP.MNU)
  10408. *WHO
  10409. EnufSec(20)
  10410. IfNotTrue(Goto(BSel))
  10411. LoadSub(CONTROL\MACROS\MWHO.CTL)
  10412. Goto(Disp)
  10413. *CHAT
  10414. EnufSec(20)
  10415. IfNotTrue(Goto(BSel))
  10416. LoadSub(CONTROL\MACROS\MCHAT.CTL)
  10417. Goto(Disp)
  10418. *FND
  10419. LoadSub(CONTROL\MACROS\FIND.CTL)
  10420. Goto(Disp)
  10421. *BNK
  10422. EnufSec(20)
  10423. IfNotTrue(Goto(BSel))
  10424. LoadSub(CONTROL\MACROS\BANK.CTL)
  10425. Goto(Disp)
  10426. *SL0
  10427. EnufSec(10)
  10428. IfNotTrue(Goto(BSel))
  10429. LoadSub(CONTROL\MACROS\SYSINFO.CTL)
  10430. Goto(Disp)
  10431. FILESMNUX
  10432. *disp
  10433. delimit( ,;)
  10434. SetActivity (Files Menu)
  10435. setnv(wiprestreq=)
  10436. ;---PowerStak Block 1
  10437. len(%nv%queue%)
  10438. notif (%aresp%) = (0) then
  10439. setequal(/resp=%nv%queue%)
  10440. goto(stk) ;If something in the stack then...
  10441. endif
  10442. ;---PowerStak Block 1 End---
  10443. setnv(didwip=)
  10444. if (/:expert/)=(Y) then linefeed(1)
  10445. if (/:EXPERT/)=(Y) then goto (exp0)
  10446.  
  10447. *sdisp
  10448. if (%graphics%)<>(WIP) then setnv(wipmode=)
  10449. if (%nv%wipmode%)=(1) then if (%nv%norefresh%)=(1) then setnv(jExec=1)
  10450. setnv(file=file)
  10451. seek(display\file/:sec/.ans)
  10452. iftrue(setnv(file=file/:sec/))
  10453. setnv(NoInfo=1)
  10454. setnv(asciiequiv=1)
  10455. loadsub(control\newdisp.ctl)
  10456. setequal(c=07~Bar~Conference: /:lastmsg/:%areaname% - File Area /:lastdown/:%filname%~)
  10457. if (%nv%wipmode%)=(1) then loadsub(control\okbox.ctl)
  10458.  
  10459. *prompt
  10460. setnv(norefresh=)
  10461. Say(&14&(/:LASTMSG/:%FILNAME%))
  10462. say (&0&$7$%CACT%$0$&15& %LEFT% Minutes Remain. Please select, %FNAME%&12&: &14&$0$*)
  10463. if (%nv%didwip%)<>(1) then cask(%CRON%*)
  10464. if (%nv%didwip%)=(1) then jump (wipask)
  10465. ;---PowerStak Block 2
  10466.  
  10467. *stk
  10468. menuequal(a=%resp%)
  10469. DEQUEUE(a)
  10470. setequal(/nvqueue=%var%a)
  10471. setequal(/resp=%aresp%)
  10472. ;---PowerStak Block 2 End---
  10473. Get(%RESP%,1,1)
  10474. If(%ARESP%)=(/) then Goto(Anywhere)
  10475. If(%ARESP%)=(?) then Goto(OLHelp)
  10476. MenuEqual(/RESP=%RESP%)
  10477. BigIf (G:GOODBYE,?:OLHELP,<CR>:SDISP,X:EXP,Q:MAIN,C:CHANGE,L:LIST,R:READ,V:ZVIEW,N:NEW,D:DOWN,U:UP,M:MOVE,J:JOIN,S:SEARCH,W:WILD,A:ABAND,E:EDTAG)
  10478.  
  10479. *bsel
  10480. loadsub(control\macros\badsel.ctl)
  10481. ;Clear Stack on Error!
  10482. ;---PowerStak Block 3
  10483. setequal(/nvqueue=)
  10484. ;---PowerStak Block 3 End
  10485. goto(disp)
  10486.  
  10487. *wipask
  10488. setequal(y=90)
  10489. loadsub(control\wipask.ctl)
  10490. if (%nv%wiprestreq%)=(1) then goto (disp)
  10491. if (%aresp%)<>(24) then goto (gb)
  10492. loadsub(control\wipask.ctl,goto(twarn))
  10493. goto (wipask)
  10494. *gb
  10495. setEqual(/resp=%resp%)
  10496. if (%resp%)=() then setequal(/resp=<CR>)
  10497. writeln(%resp%)
  10498. ret
  10499.  
  10500. *Anywhere
  10501. Len(%RESP%)
  10502. If(%ARESP%)<(2) then Goto(Bsel)
  10503. LoadSub(control\macros\anywhere.ctl)
  10504. Goto(disp)
  10505.  
  10506. *exp0
  10507. if (%nv%wipmode%)=(1) then loadsub(control\exitwip.ctl)
  10508. goto(prompt)
  10509. *GOODBYE
  10510. EnufSec(10)
  10511. IfNotTrue(Goto(BSel))
  10512. LoadSub(CONTROL\MACROS\BYE.CTL)
  10513. Goto(Disp)
  10514. *OLHELP
  10515. LoadSub(OLHELP\FILES.MNU)
  10516. Goto(Disp)
  10517. *EXP
  10518. EnufSec(10)
  10519. IfNotTrue(Goto(BSel))
  10520. LoadSub(CONTROL\MACROS\EXPERT.CTL)
  10521. Goto(Disp)
  10522. *MAIN
  10523. EnufSec(10)
  10524. IfNotTrue(Goto(BSel))
  10525. LoadMem(CONTROL\MAIN.MNU)
  10526. *CHANGE
  10527. EnufSec(10)
  10528. IfNotTrue(Goto(BSel))
  10529. LoadSub(CONTROL\MACROS\CHANGE.CTL)
  10530. Goto(Disp)
  10531. *LIST
  10532. EnufSec(10)
  10533. IfNotTrue(Goto(BSel))
  10534. LoadSub(CONTROL\MACROS\FLIST.CTL)
  10535. Goto(Disp)
  10536. *READ
  10537. EnufSec(10)
  10538. IfNotTrue(Goto(BSel))
  10539. LoadSub(CONTROL\MACROS\FREAD.CTL)
  10540. Goto(Disp)
  10541. *ZVIEW
  10542. EnufSec(10)
  10543. IfNotTrue(Goto(BSel))
  10544. LoadSub(CONTROL\MACROS\ZVIEW.CTL)
  10545. Goto(Disp)
  10546. *NEW
  10547. EnufSec(10)
  10548. IfNotTrue(Goto(BSel))
  10549. LoadSub(CONTROL\MACROS\NEW.CTL)
  10550. Goto(Disp)
  10551. *DOWN
  10552. EnufSec(10)
  10553. IfNotTrue(Goto(BSel))
  10554. LoadSub(CONTROL\MACROS\DOWN.CTL)
  10555. Goto(Disp)
  10556. *UP
  10557. EnufSec(10)
  10558. IfNotTrue(Goto(BSel))
  10559. LoadSub(CONTROL\MACROS\UP.CTL)
  10560. Goto(Disp)
  10561. *MOVE
  10562. EnufSec(90)
  10563. IfNotTrue(Goto(BSel))
  10564. LoadSub(CONTROL\MACROS\MOVE.CTL)
  10565. Goto(Disp)
  10566. *JOIN
  10567. EnufSec(10)
  10568. IfNotTrue(Goto(BSel))
  10569. LoadSub(CONTROL\MACROS\CHG.CTL)
  10570. Goto(Disp)
  10571. *SEARCH
  10572. EnufSec(10)
  10573. IfNotTrue(Goto(BSel))
  10574. LoadSub(CONTROL\MACROS\SEARCH.CTL)
  10575. Goto(Disp)
  10576. *WILD
  10577. LoadSub(CONTROL\MACROS\WSEARCH.CTL)
  10578. Goto(Disp)
  10579. *ABAND
  10580. EnufSec(10)
  10581. IfNotTrue(Goto(BSel))
  10582. LoadSub(CONTROL\MACROS\ABAND.CTL)
  10583. Goto(Disp)
  10584. *EDTAG
  10585. LoadSub(CONTROL\MACROS\DELTAG.CTL)
  10586. Goto(Disp)
  10587.